当前位置: 首页 > news >正文

哪个网站看电视剧最全还免费动漫设计与制作属于计算机类吗

哪个网站看电视剧最全还免费,动漫设计与制作属于计算机类吗,中国比较好的设计网站,系统搭建是什么意思1、ESP8266-01S的工作原理 1.1、AP和STA ESP8266-01S为WIFI的透传模块#xff0c;主要模式如下图#xff1a; 上节说到#xff0c;我们需要用到AT固件进行局域网应用#xff08;ESP8266连接的STM32和手机进行连接#xff09;。 ESP8266为一个WiFi透传模块#xff0c;和…1、ESP8266-01S的工作原理 1.1、AP和STA ESP8266-01S为WIFI的透传模块主要模式如下图 上节说到我们需要用到AT固件进行局域网应用ESP8266连接的STM32和手机进行连接。 ESP8266为一个WiFi透传模块和蓝牙透传模块具有主从两种工作模式一样也具有两种工作模式STA模式Station和AP模式Access Point一般WiFi模块还会有一个STAAP模式即可以在两种模式下切换的状态。AP模式下WiFi模块产生热点提供无线接入服务允许其它无线设备接入提供数据访问一般的无线路由/网桥工作在该模式下。该模式对应TCP传输协议中的服务端TCP Server。STA模式下WiFi模块为连接到无线网络的终端站点可以连接到AP一般无线网卡工作在STA模式下。该模式对应TCP传输协议中的客户端TCP Client。 1.2、TCP/UDP/透传的概念以及他们之间的不同点和相同点 TCP TCP是一种面向连接的提供可靠交付服务和全双工通信的基于字节流的端到端的传输层通信协议。TCP在传输数据之前必须先建立连接数据传输结束后要释放连接。每一条TCP连接只能有2个端点故TCP不提供广播或多播服务。TCP提供可靠交付通过TCP连接传输的数据无差错、不丢失、不重复、并且按序到达。TCP是面向字节流的。虽然应用进程和TCP的交互是一次一个数据块(大小不等但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。TCP并不知道所传输的字节流的含义。 UDP UDP是一种无连接的尽最大努力交付的基于报文的端到端的传输层通信协议。UDP在发送数据之前不需要建立连接。UDP不保证可靠交付主机不需要位置复杂的连接状态。UDP是面向报文的。UDP对应用层交下来的报文既不合并也不拆分而是保留这些报文的的边界即应用层交给UDP多长的报文UDP就照样发送即一次发送一个报文。在接收端UDP一次交付一个完整的报文。UDP没有拥塞控制网络出现的拥塞不会使源主机的发送速率降低。UDP支持一对一、一对多、多对一和多对多的交互通信。UDP的首部开销小只有8个字节比TCP的20个字节的首部要短。 透传 透传又称透明传输具体来说就是“输入即输出如从WiFi模块串口输入的字符会透传到服务器端”数据不改变不同协议之间的转换如串口到WiFi、蓝牙等由模块完成。使用者无需关心内部具体实现因此模块对于使用者是“透明的”、似乎不存在的因为可无视中间的实现原理。一个高度封装的模块应该隐藏内部实现细节仅对外提供使用接口 1.3、固件 固件 固件是写入存储器中的程序在单片机中就是写到Flash中的程序。即烧写进程序的flashROM硬件根据该固件运行。 1.4、连接方式 2、AT指令原理和配置 esp8266-01s在烧入固件后根据固件运行固件中固定有配置和反馈指令对其通过串口发送对应的指令esp8266-01s会进行响应的配置。所以固件要根据自己的实际情况进行选择。你发对应指令模块就会做相应的工作。 使用 AT 指令配置 ESP8266 通过 AT 指令您可以对 ESP8266 进行各种配置包括 Wi-Fi 连接、服务器设置等。以下是常用的 AT 指令以及如何使用它们配置 ESP8266 的步骤。 2.1、准备工作 硬件连接 将 ESP8266 模块与 USB 转 TTL 适配器连接。确保正确接线TX 到 RXRX 到 TXVCC 接 3.3VGND 接地。 环境准备 使用串口工具如 PuTTY、CoolTerm 或 Arduino Serial Monitor打开串口通讯。 2.2、配置步骤AP模式 2.2.1 建立AP------------------------------------------------------------------------------------------------ 1) 测试连接串口对esp8266进行发送 AT 如果返回 OK表示与 ESP8266 的串口连接正常。 2) 查看固件版本 ATGMR 返回当前固件信息。 3) 设置工作模式 STA 模式连接 Wi-Fi ATCWMODE1 AP 模式创建热点 ATCWMODE2 混合模式同时作为热点和客户端 ATCWMODE3  查看工作模式 ATCWMODE? 4) 设置AP名称 ATCWSAPYour_AP_Name,Your_Password,5,3 Your_AP_Name: 自定义的热点名称。Your_Password: 热点的 Wi-Fi 密码8 到 64 个字符。5: 信道值从 1 到 13。选择一个不冲突的信道。3: 安全模式0开放1WEP2WPA-PSK3WPA2-PSK4WPA/WPA2-PSK。 5. 启动 AP 设置 AP 后立即启动: 上述 ATCWSAP 指令执行后ESP8266 会自动启动您配置的 AP。 6获取 AP 配置信息 查看当前 AP 配置: ATCWSAP? 7 关闭 AP 关闭当前 AP: ATCWQAP 8查看当前连接状态 检查已连接的客户端: ATCIPSTAMAC? 用于获取已连接设备的 MAC 地址。 9查看已接入设备的IP信息 ATCWLIF 10获取本设备IP ATCIFSR 2.2.2、Server 方法收发可连接多设备----------------------------------------------------------------- 1、开启多连接模式 ATCIPMUX1 0-单路连接模式1-多路连接模式Server模式 2、创建服务器 ATCIPSERVER1,8080 0-关闭 server 模式1-开启 server 模式端口号缺省值为 333 (1) AT CIPMUX1 时才能开启服务器关闭 server 模式需要重启 ​(2)开启 server 后自动建立 server 监听,当有 client 接入会自动按顺序占用一个连接。 3关闭连接关闭 server 模式需要重启重启使用AT CIPMUX1重启后创建服务器ATCIPSERVER1,8080例如 ATCIPSERVER0 关闭服务器  通过 fireTools.exe连接 串口助手 软件工具等 链接百度网盘 请输入提取码    提取码3p7y 可以看到连接失败ESP8266默认ip为192.168.4.1通过指令ATCIFSR可以查看ESP8266自身的IP 需要设置超时时间否则无数据时会超时自动断连断联后需要重开服务器需要再发一遍 ATCIPMUX1ATCIPSERVER1,8080 4设置超时时间s为单位开启服务器后才能设置 ATCIPSTO2880 服务器超时时间0~2880单位为 s 5然后电脑连接ESP8266-01S 此处网络为配置AP时设置的名称和密码我们此处举例为ESP_01S12345678电脑连接模块的WIFI然后通过 fireTools.exe调试助手连接TPC服务器模块 串口助手 软件工具等下载工具在TCP网络调试菜单进行调试 链接百度网盘 请输入提取码    提取码3p7y 协议类型表示上位机使用端的类型为客户机服务器ip即esp8266-01s的ip默认为192.168.4.1端口为自己配置的8080。esp8266的配置可通过ATCWSAP?命令查看esp8266的IP可通过ATCIFSR查看。 如图连接和断连都会显示 6查看当前的设备 ATCIPSTATUS 返回STATUS: CIPSTATUS:,,,, :连接的 id 号 0-4:字符串参数类型 TCP 或 UDP:字符串参数IP 地址:端口号: 0-本模块做 client 的连接1-本模块做 server 的连接 7向连接设备发送数据 ATCIPSEND0,6(设置指令) 通过上一条指令 ATCIPSTATUS 得知 ID0 1)单路连接时(CIPMUX0)指令为ATCIPSEND 2)多路连接时(CIPMUX1) Server模式指令为ATCIPSEND 0,6 多路连接参数10表示多路连接的设备0 多路连接参数26表示向指定设备发送6Byte数据若发送字节数小于6则在发送数据结尾每次会自动补充0D 0A直到足够6Byte。若发送字节数大于6则截取前6BYTE。最大长度为 2048。 ESP8266收到此命令后先换行返回””然后开始接收串口数据 1是电脑调试助手发送给ESP8266的数据发了两次 发送完毕ESP826601S会返回Recv 6 bytes SEND OK如果未建立连接或连接被断开返回 ERROR 8接收数据 从设备电脑模拟的可直接发送数据接收到 发送接收也可以使用ASIIC一个汉字占2BYTE好像是 2.2.3 Client收发数据方法----------------------------------------------------------------------------------------- 1关闭Server服务器不管之前开没开启过都可以走一下这个流程 ATCIPSERVER0 指令ATCIPSERVER[,]                  说明:0-关闭 server 模式1-开启 server 模式 :端口号缺省值为 333 响应OK 说明(1) AT CIPMUX1 时才能开启服务器关闭 server 模式需要重启 (2)开启 server 后自动建立 server 监听,当有 client 接入会自动按顺序占用一个连 接。 ATRST重启一下 2使用其他设备或调试助手创建服务器示例使用fireTools.exe 3开启多路连接模式一个客户机esp826601s可以连接多个服务器 ATCIPMUX1 0-单路连接模式1-多路连接模式 4建立TCP连接 ATCIPSTART0,TCP,192.168.4.2,8080 表示建立id为0的TCP连接后面是服务器ip和端口号 指令 1)单路连接时(CIPMUX0)指令为ATCIPSTART ,, 2)多路连接时(CIPMUX1)指令为ATCIPSTART,,, 响应 如果格式正确且连接成功返回 OK否则返回 ERROR 如果连接已经存在返回 ALREAY CONNECT 说明 0-4连接的 id 号 字符串参数表明连接类型”TCP”-建立 tcp 连接”UDP”-建立 UDP 连接 字符串参数远程服务器 IP 地址 远程服务器端口号 5向服务器发送数据 ATCIPSEND0,10通过上一条指令 ATCIPSTART 设置为 ID0 指令 1)单路连接时(CIPMUX0)指令为ATCIPSEND 2)多路连接时(CIPMUX1) 指令为 ATCIPSEND  ,  响应 收到此命令后先换行返回””然后开始接收串口数据 每次发送会自动补0D、0A当数据长度满 length 时发送数据。 如果未建立连接或连接被断开返回 ERROR 如果数据发送成功返回 SEND OK 说明 需要用于传输连接的 id 号 0-4 数字参数表明发送数据的长度最大长度为 2048 2.3. 其他常用指令 重启 ESP8266 ATRST 设置无回显模式有时需要 ATE0 恢复工厂设置 ATRESTORE 二、实际操作 1、ESP8266配置 1.1使用安可信助手连接ESP8266模块方法见上一文章需要烧写固件等 1.2指令配置 1、AT测试 2、ATCWMODE2AP模式配置 3、ATRST复位 4、ATCWSAPYour_AP_Name,Your_Password,1,3      配置ESP8266的WIFI热点名称和密码 Your_AP_Name: 自定义的热点名称。Your_Password: 热点的 Wi-Fi 密码8 到 64 个字符。5: 信道值从 1 到 13。选择一个不冲突的信道。3: 安全模式0开放1WEP2WPA-PSK3WPA2-PSK4WPA/WPA2-PSK。 5、ATCIPMUX1 开启多连接模式 6、ATCIPSERVER1,a (为端口号默认333)ESP8266-01S作为server进行连接 0-关闭 server 模式1-开启 server 模式端口号缺省值为 333 9、完成以上指令后基本上就设置完成了当用手机app连接时app随便下一个网络调试助手就行选择TCP客户端连接时需要8266模块的ip和之前设置的端口默认端口为333模块的ip可以通过指令查询ATCIFSR 一般默认192.168.4.1 2、手机作为客户端进行连接当用手机app连接时app随便下一个网络调试助手就行 若与与手机端在一定时间内不通信则模块会断开此连接默认为3分钟。 2.1、设置超时时间 2.2、连接 手机直接连接刚才创建的服务器和指定的端口通过 多路连接连接的通断会显示好像是0-4通道默认从0开始 通过指令可以查看当前连接的设备通道和ip和端口等。 ATCIPSTATUS 返回STATUS: CIPSTATUS:,,,, :连接的 id 号 0-4:字符串参数类型 TCP 或 UDP:字符串参数IP 地址:端口号: 0-本模块做 client 的连接1-本模块做 server 的连接​​​​​​​​​​​​​​ 2.3、收发 手机直接发送ESP826601S可以接收到 ESP接收到数据 ESP826601S发送 ATCIPSEND0,6 多路连接参数10表示多路连接的设备0 多路连接参数26表示向指定设备发送6Byte数据若发送字节数小于6则在发送数据结尾每次会自动补充0D 0A直到足够6Byte。若发送字节数大于6则截取前6BYTE。最大长度为 2048。下图发送的两次1。 ESP8266收到此命令后先换行返回””然后开始接收串口数据 1是电脑调试助手发送给ESP8266的数据发了两次 发送完毕ESP826601S会返回Recv 6 bytes SEND OK如果未建立连接或连接被断开返回 ERROR 测试完成表明连接已经成功功能无异常 三、ESP8266-01S----STM32----手机 以STM32串口3为例 串口3esp8266模块连接串口3资源定时器5为什么使用定时器在esp8266接受数据产生中断时因为我们并不知道接收的有多少数据什么时候接收结束所以采用一个定时器当定时器清零前下一个数据到来表示是连续数据重置定时器若定时器时间到了还没有接收到下一条数据则表示数据接收完成可进入定时器中断服务程序进行数据处理添加接收完成标志位如下代码 定时器5初始化 #include timer5.h extern u8 start3;//串口中断接收完成标志//定时器5中断服务程序 void TIM5_IRQHandler(void) { if (TIM_GetITStatus(TIM5, TIM_IT_Update) ! RESET)//是更新中断{ start31; //标记串口数据接收完成TIM_ClearITPendingBit(TIM5, TIM_IT_Update ); //清除TIM5更新中断标志 TIM_Cmd(TIM5, DISABLE); //关闭TIM5} }//通用定时器中断初始化 //这里始终选择为APB1的2倍而APB1为36M //arr自动重装值。 //psc时钟预分频数 void TIM5_Int_Init(u16 arr,u16 psc) { NVIC_InitTypeDef NVIC_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE);//TIM7时钟使能 //定时器TIM7初始化TIM_TimeBaseStructure.TIM_Period arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Prescaler psc; //设置用来作为TIMx时钟频率除数的预分频值TIM_TimeBaseStructure.TIM_ClockDivision TIM_CKD_DIV1; //设置时钟分割:TDTS Tck_timTIM_TimeBaseStructure.TIM_CounterMode TIM_CounterMode_Up; //TIM向上计数模式TIM_TimeBaseInit(TIM5, TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位TIM_ITConfig(TIM5,TIM_IT_Update,ENABLE ); //使能指定的TIM5中断,允许更新中断NVIC_InitStructure.NVIC_IRQChannel TIM5_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority3 ;//抢占优先级0NVIC_InitStructure.NVIC_IRQChannelSubPriority 0; //子优先级1NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE; //IRQ通道使能NVIC_Init(NVIC_InitStructure); //根据指定的参数初始化VIC寄存器} 串口3初始化 //初始化IO 串口3 //bound:波特率 void usart3_init(u32 bound) { USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; //声明一个结构体变量用来初始化GPIO //使能串口的RCC时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE); //使能UART3所在GPIOB的时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); //串口使用的GPIO口配置 // Configure USART3 Tx (PB.10) as alternate function push-pull GPIO_InitStructure.GPIO_Pin GPIO_Pin_10; GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP; GPIO_Init(GPIOB, GPIO_InitStructure); // Configure USART3 Rx (PB.11) as input floating GPIO_InitStructure.GPIO_Pin GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOB, GPIO_InitStructure); //串口中断配置 //Configure the NVIC Preemption Priority Bits // NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // Enable the USART3 Interrupt NVIC_InitStructure.NVIC_IRQChannel USART3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority1 ;//抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority 2; //子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE; NVIC_Init(NVIC_InitStructure); //配置串口 USART_InitStructure.USART_BaudRate bound; USART_InitStructure.USART_WordLength USART_WordLength_8b; USART_InitStructure.USART_StopBits USART_StopBits_1; USART_InitStructure.USART_Parity USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode USART_Mode_Rx | USART_Mode_Tx; // Configure USART3 USART_Init(USART3, USART_InitStructure);//配置串口3 // Enable USART3 Receive interrupts 使能串口接收中断 USART_ITConfig(USART3, USART_IT_RXNE, ENABLE); // Enable the USART3 USART_Cmd(USART3, ENABLE);//使能串口3 USART_ClearFlag(USART3, USART_FLAG_TC); TIM5_Int_Init(1000-1,8400-1); //100ms中断TIM_Cmd(TIM5, DISABLE); //关闭定时器7}串口3中断处理函数 //定义接收数组接收缓冲,最大USART3_MAX_RECV_LEN个字节宏定义为400 unsigned char USART3_RX_BUF[USART3_MAX_RECV_LEN]; u16 USART3_RX_STA0; //数组标志位 u8 start30; //接收状态标志位 void USART3_IRQHandler(void) {u8 res; if(USART_GetITStatus(USART3, USART_IT_RXNE) ! RESET)//接收到数据{ res USART_ReceiveData(USART3); TIM_SetCounter(TIM5,0);//计数器清空 TIM_Cmd(TIM5, ENABLE); //使能定时器5 USART3_RX_BUF[USART3_RX_STA]res; //记录接收到的值USART3_RX_STA; } }串口3发送字符串函数 //串口3,printf 函数 //确保一次发送数据不超过USART3_MAX_SEND_LEN字节 void u3_printf(char* fmt,...) { u16 i,j;va_list ap;va_start(ap,fmt);vsprintf((char*)USART3_TX_BUF,fmt,ap);va_end(ap);istrlen((const char*)USART3_TX_BUF);//此次发送数据的长度for(j0;ji;j)//循环发送数据{while(USART_GetFlagStatus(USART3,USART_FLAG_TC)RESET); //等待上次传输完成 USART_SendData(USART3,(uint8_t)USART3_TX_BUF[j]); //发送数据到串口3 }}esp8266初始化 //清空每次中断接收完成后的数组 void Clear_Buffer(void)//清空缓存 {u8 i;for(i0;iUSART3_RX_STA;i)USART3_RX_BUF[i]0;//缓存USART3_RX_STA0;Delay_ms(100); }//模块初始化 void esp8266_start_trans(void) {esp8266_send_cmd(ATCWMODE2,OK,50);Clear_Buffer();//Wifi模块重启esp8266_send_cmd(ATRST,OK,20);Delay_ms(1000); //延时3S等待重启成功Delay_ms(1000);Delay_ms(1000); //AP模式esp8266_send_cmd(ATCWSAP\想学ESP8266吗\,\12345678\,11,3,OK,200);Clear_Buffer();esp8266_send_cmd(ATCIPMUX1,OK,20);Clear_Buffer();esp8266_send_cmd(ATCIPSERVER1,OK,200);Clear_Buffer();} u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 waittime) {u8 res0; USART3_RX_STA0;u3_printf(%s\r\n,cmd); //发送命令printf(%s\r\n,cmd);Delay_ms(waittime);if(strstr((const char*)USART3_RX_BUF,OK)){Uart1_SendStr((char*)USART3_RX_BUF);}return res; } 主函数main extern u8 start3;extern unsigned char USART3_RX_BUF[USART3_MAX_RECV_LEN]; int main ( void ) {/* 初始化 */USART1_Config ();usart3_init(115200); CPU_TS_TmrInit(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3); esp8266_start_trans(); while ( 1 ){if(start31)//接收中断完成标志位{//判断接收的数据是否为密码数据自己设置就行if(strstr((const char*)USART3_RX_BUF,12345678)){ printf(开门成功\r\n); } if(!strstr((const char*)USART3_RX_BUF,12345678)){printf(密码错误\r\n); } Clear_Buffer(); start30;}} }
http://www.w-s-a.com/news/438699/

相关文章:

  • 网站 如何备案一般网站开发公司
  • 做网站的公司 贵阳郑州新像素ui设计培训收费
  • 温州网站建设公司电话给个免费的网址
  • 个人做电子商务网站备案软考高级
  • 淘宝客需要自己做网站吗四川遂宁做网站的公司
  • 编写网站策划书缘魁上海网站建设
  • 梧州外贸网站推广设计wordpress 上传 七牛
  • 增加网站备案千灯做网站
  • 深圳做网站的公php做简易网站
  • 徐州哪家做网站好商业空间设计效果图
  • 重庆建网站cqiezscom大学毕业做网站插画师好吗
  • 在门户网站做产品seo怎么样做网站管理员
  • 动画做视频在线观看网站字体安装+wordpress
  • vs2015网站开发做珠宝建个网站推广怎么样
  • 大桥外语官方网站星做宝贝佛山微信网站开发
  • 河南建设网站公司哪家好怎样做一家网站
  • 安阳市哪里做网站建设网站流量怎么赚钱
  • 网站开发与优化课程总结软件班级网站建设
  • py网站开发wordpress 公司网站 模板 下载
  • 长春城乡建设部网站首页英文网站推广服务
  • wordpress实训上海整站seo
  • 福建自己建设网站义乌市企推网络科技有限公司
  • 宁波优化网站哪家好织梦网站地图怎么做
  • 怎么在自己的网站加关键词烟台企业网站建设
  • 中山网站建设界面设计职业技能等级证书
  • 做网站首页多少钱免费版企业邮箱注册
  • ppp模式在网站建设的南昌专业做网站公司哪家好
  • 泰安网站建设制作电话号码百度sem竞价托管公司
  • 苏网站建设网页设计和网页美工
  • 跨境电商平台网站广州地铁站路线图