再写DHT11的时候卡住了,卡了很久才解决
我总结了:1.单片机板子坏了一定要及时换,平时要准备备份。
2,单总线协议不稳定,使用时对时序的要求很严苛,所以一定要使用精准的定时比如SysTick计时,不然很有可能会无法使用,之前我是用的tim2做的粗略定时(下图)就没法用单总线。
ESP8266的三种模式
AP模式:相当于路由器,作为无线热点,可以连上。这个模式下可以设置三个子模式,TCP服务器,TCP客户端,UDP。手机或电脑可以直接和模块连接形成局域网
STA模式:连接路由器的设备,串口无线模式,模块作为无线WIFI STA,用于连接到无线网,实现串口和其他设备的无线数据传输 ,也有三个子模式
AP+STA模式:既相当于路由器,又相当于连接路由器的设备
透传:连续发送数据,只能在单链模式(只有一个客户端连接服务器 或者 只有一个服务器连接客户端)下开启
非透传:每次发送数据前都要发送AT指令
- 透传模式是ESP8266直接将串口数据通过Wi-Fi发送到目标设备,并将目标设备返回的数据通过串口发送回去。
- 非透传模式是通过发送AT指令来控制ESP8266的连接和通信行为。
-
透传模式(Transparent Mode): 在透传模式下,ESP8266将串口接收到的数据直接通过Wi-Fi发送到目标设备,同时将目标设备返回的数据通过串口发送回去。这种模式下,ESP8266只是一个数据传输的中继器,不对数据进行处理或解析。透传模式适用于需要将串口数据通过Wi-Fi传输的场景,例如远程控制、数据采集等。
-
非透传模式(Non-Transparent Mode): 在非透传模式下,ESP8266可以通过AT指令控制其连接和通信行为。用户可以通过发送特定的AT指令来配置ESP8266的工作模式、连接到指定的Wi-Fi网络、进行数据传输等操作。非透传模式提供了更多的灵活性和控制能力,但需要用户编写和发送AT指令来实现相应功能。
字符串的定义:
1.char ch[ ] = {'a','b','c','d'};
2.char ch[ ] = "hello";
字符串的本质就是数组,只不过比字符数组多存了一个标志字符“\0”,"\0"就时字符串的结束标志。
sprintf()h和snprintf
C 字符串函数 sprintf()、snprintf() 详解_sprintf和snprintf-CSDN博客
char和cahr*的区别
char[]和char*的区别_char和char*的区别-CSDN博客
字符串操作函数strstr
char *strstr( const char *str1, const char *str2 );
strstr函数是在字符串str1中查找是否含有字符串str2,如果存在,返回str2在str1中第一次出现的地址;否则返回NULL。
esp8266:
直接用这个烧录器
有回显
无回显
连接的WIFI的名字尽量设简单点,我设置的名字是knc!结果可能是大小写的一些问题导致一直连不上,索性直接改成knc就连上了,还有esp8266只能连2.4G的频段,建议用手机把热点改为2.4G。
因为设备不共地导致连不上(阿里云),一个是电池供电,一个是电脑供电(如何可以使他们两个共地呢?因为ttl和单片机公地,所以我们可以再把单片机和电池主板共地)。
像USART,I2C,SPI这种协议必须共地,只有差分的不要!
上报和下发的格式(格式是一样的,上发下发通用)
中继站(可以和MQTT软件配合获得下发和上传的格式)
再写esp8266的下发处理时可以直接找从i往后数
画原理图的时候直接用引脚表示,这样简单易懂,不容易画错