找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5027|回复: 11
打印 上一主题 下一主题
收起左侧

串口助手接收数据,0x00及之后的数据不显示

  [复制链接]
跳转到指定楼层
楼主
ID:708768 发表于 2020-10-15 16:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
举个例子,单片机发送一组这样的数组{0x0a,0xab,0x00,0xab},然后在串口助手上,显示出来的只有0a ab,后面两个就不显示,这个问题要如何解决
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:328014 发表于 2020-10-15 17:26 | 只看该作者
没有程序,无法分析,白白进来浪费时间,建议版主删除此贴
回复

使用道具 举报

板凳
ID:123289 发表于 2020-10-15 18:19 | 只看该作者
先搞清楚,发的是ASCII码,还是二进制码。
回复

使用道具 举报

地板
ID:123289 发表于 2020-10-15 18:20 | 只看该作者
多发两个试试。是不是每次都是末两个不显示?
回复

使用道具 举报

5#
ID:798631 发表于 2020-10-15 19:27 | 只看该作者
串口助手一般是不会出错的,还是仔细分析程序吧
回复

使用道具 举报

6#
ID:414556 发表于 2020-10-15 21:26 | 只看该作者
没发完一般看波特率和程序是否被中断。
回复

使用道具 举报

7#
ID:277550 发表于 2020-10-16 09:01 | 只看该作者
两端的程序是如何的。
回复

使用道具 举报

8#
ID:388197 发表于 2020-10-19 07:00 | 只看该作者
初步推断是0x00被当成了结束符...
回复

使用道具 举报

9#
ID:86450 发表于 2020-10-19 07:48 | 只看该作者
换一个 串口助手 试一试
回复

使用道具 举报

10#
ID:711539 发表于 2020-10-19 08:09 | 只看该作者
楼主附上程序啊,不然别人不好判断。
建议程序里面使用for循环单个单个字节发送,防止0x00被当成了结束符'\0'
回复

使用道具 举报

11#
ID:149144 发表于 2020-10-19 13:57 | 只看该作者
那说明 00 ab根本就没发出来
回复

使用道具 举报

12#
ID:708768 发表于 2020-10-19 14:26 | 只看该作者
现在已解决,这是原程序
  1. void USART1_puts(char *str)
  2. {
  3. while(*str)
  4. {
  5. usart_senddata(usart1,*str++)
  6. while(usart_getflagstatus(usart1,usart_flag_txe)==reset;
  7. }
  8. }
复制代码

问题是在while(*str),当到了0x00时,就会判断为空,跳出循环,加个长度判断即可
像这样void USART1_puts(char *str,int n)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表