一、确定方案和目的
使用ESP8266或者其它模块串口AT指令是比较常见,今天我们学习如何设计和使用AT指令,方案是:单片机STM32+串口通讯+AT指令+labview上位机,涉及STM32和Labview代码的完整串口数据通讯流程,具体要求如下:
任务:学会使用labview结合STM32语言实现AT指令数据通讯要求:
01.STM32串口基本配置、发送、接收数据的语法; 02.构建STM32单片机的AT指令处理体系 03.学会C语言的字符串处理函数strstr、strcmp函数、atoi函数使用; 03.实现AT接收、AT发送、AT的应答、实现灵活指令; 04.用ESP8266模块实现labview数据的接收和数据的处理;关键词:labview、STM32、ESP8266、strcmp函数、strstr函数、atoi、VISA备注1:手机微信可浏览相关高清图片;
二、串口通讯原理
01、串口通讯的底层基础驱动语法内容请自行查询相关教程网站,本教程着重介绍串口的思维方法是功能层面的设计;
02、串口通讯通常是存在3种方式:主动发送不接收,被动接收不发送,被动接收发送反馈;
03、主动发送不接收模式需要定义发送时间和间隔,如不定期的上传数据,不管对方是否收到;
04、被动接收不发送模式是单片机是主机的模式,需要解析接收到的内容,一般用到设置主机某些参数,比如ESP8266的设置wifi参数连接TCP服务器;
05、被动接收发送反馈模式是比较常用的应答模式,保证通讯双方的数据正常;
06、产品通常需要获取数据和设置数据两个操作,而且字符长度不固定,比如Modbus协议和AT指令,RTU模式和ASCII模式;
三、STM32串口注意事项
if(strcmp(usercmd,"AT")==0)if(strstr(USART2_RX_BUF,"AT+SetDAC")!=NULL) strbuf = user_after(USART2_RX_BUF,"AT+SetDAC="); USART2_RX_BUF[uart2_i-2]='\0';
AT指令不固定长度,串口接收函数需要获取到接收的起点终点和长度,同时需要有错误处理、超时恢复机制、超长恢复机制;
接收指针 uart_i 是存到字符串数组的指针,接收到数据就会加一移动一位,错误会进行指针清零,数据安全的化建议

最低0.47元/天 解锁文章
3533

被折叠的 条评论
为什么被折叠?



