标题:
串口助手接收数据,0x00及之后的数据不显示
[打印本页]
作者:
feelings
时间:
2020-10-15 16:49
标题:
串口助手接收数据,0x00及之后的数据不显示
举个例子,单片机发送一组这样的数组{0x0a,0xab,0x00,0xab},然后在串口助手上,显示出来的只有0a ab,后面两个就不显示,这个问题要如何解决
作者:
51hei团团
时间:
2020-10-15 17:26
没有程序,无法分析,白白进来浪费时间,建议版主删除此贴
作者:
yzwzfyz
时间:
2020-10-15 18:19
先搞清楚,发的是ASCII码,还是二进制码。
作者:
yzwzfyz
时间:
2020-10-15 18:20
多发两个试试。是不是每次都是末两个不显示?
作者:
design003
时间:
2020-10-15 19:27
串口助手一般是不会出错的,还是仔细分析程序吧
作者:
amandv
时间:
2020-10-15 21:26
没发完一般看波特率和程序是否被中断。
作者:
devcang
时间:
2020-10-16 09:01
两端的程序是如何的。
作者:
cjm82
时间:
2020-10-19 07:00
初步推断是0x00被当成了结束符...
作者:
jjwangxu2008
时间:
2020-10-19 07:48
换一个 串口助手 试一试
作者:
菜鸟yc
时间:
2020-10-19 08:09
楼主附上程序啊,不然别人不好判断。
建议程序里面使用for循环单个单个字节发送,防止0x00被当成了结束符'\0'
作者:
cuihaodianzi
时间:
2020-10-19 13:57
那说明 00 ab根本就没发出来
作者:
feelings
时间:
2020-10-19 14:26
现在已解决,这是原程序
void USART1_puts(char *str)
{
while(*str)
{
usart_senddata(usart1,*str++)
while(usart_getflagstatus(usart1,usart_flag_txe)==reset;
}
}
复制代码
问题是在while(*str),当到了0x00时,就会判断为空,跳出循环,加个长度判断即可
像这样void USART1_puts(char *str,int n)
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1