
串口打印中断方式接收的数据不对
本人用stm8s+esp8266开发,程序如下:while(1){str=ESP8266_receiveString(DISABLE);PC_UART("%s",str)...
本人用stm8s+esp8266开发,程序如下:
while(1)
{
str=ESP8266_receiveString(DISABLE);
PC_UART("%s",str);
}
循环里面用到的两个函数的问题可以排除。
当我在某个客户端发送一串数据:
AT+CWSAP="ESP8266","1234567890ABCD",0
串口软件接收如下:
+IPD,0,37:AT+CWSAP="ESP8266","1234567890ABCD",0
如果改成 PC_UART("%s ",str);,注意看,%s后面有个空格,
客户端发送一样的数据,串口软件接收如下:
+ P , , 7 A + W A = E P 2 6 , 1 3 5 7 9 A C " 0
也就是说,下标为单的接收数据都被空格代替了,也就是说,打印的数据,%s后的空格也占据了str里面的数据,请问有人知道这是什么原因吗? 展开
while(1)
{
str=ESP8266_receiveString(DISABLE);
PC_UART("%s",str);
}
循环里面用到的两个函数的问题可以排除。
当我在某个客户端发送一串数据:
AT+CWSAP="ESP8266","1234567890ABCD",0
串口软件接收如下:
+IPD,0,37:AT+CWSAP="ESP8266","1234567890ABCD",0
如果改成 PC_UART("%s ",str);,注意看,%s后面有个空格,
客户端发送一样的数据,串口软件接收如下:
+ P , , 7 A + W A = E P 2 6 , 1 3 5 7 9 A C " 0
也就是说,下标为单的接收数据都被空格代替了,也就是说,打印的数据,%s后的空格也占据了str里面的数据,请问有人知道这是什么原因吗? 展开
1个回答
展开全部
为什么不会是PC_UART()的问题呢,加个断点,你在打印之后看一下str的数据是否正常,我觉得可能是打印函数在传递数据时逻辑有问题,你在空格后加点东西再试试

2025-01-03 广告
串口服务器迪凯特家好,迪凯特科技(北京)有限公司是一家长期专力于串口通讯、物联网终端数据传输设备的科技公司,主推产品DIGATTO T系列串口服务器、SUNIX系列多串口卡、物联设备 I.O.T数据传输设备,以质量好、性能优,受到广大用户的...
点击进入详情页
本回答由迪凯特科技(北京)有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询