STM32串口设计与上位机对接技术

一、确定方案和目的

      使用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:手机微信可浏览相关高清图片;80264e4d62524ad38cc082fb8a4ae5cf.png

二、串口通讯原理a9abd84f7bea439bb974f4f8ae88ab81.png 

 

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 是存到字符串数组的指针,接收到数据就会加一移动一位,错误会进行指针清零,数据安全的化建议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值