串口打印中断方式接收的数据不对

本人用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里面的数据,请问有人知道这是什么原因吗?
展开
 我来答
kill_ni_ma
2015-07-09 · 超过24用户采纳过TA的回答
知道答主
回答量:56
采纳率:75%
帮助的人:14.8万
展开全部
为什么不会是PC_UART()的问题呢,加个断点,你在打印之后看一下str的数据是否正常,我觉得可能是打印函数在传递数据时逻辑有问题,你在空格后加点东西再试试
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式