TI论坛
直播中

何壮梦

7年用户 292经验值
私信 关注
[问答]

CC2541串行口透传,电脑显示故障

蓝牙芯片:CC2541 官方程序:串行口透传,
传出去的字符串前被填满‘0x0’,如:字符串‘123’,结果是:00 00 00 00 00 00 00 00 00 00 00 31 32 33 0d 0a

架构:单片机->CC2541(用户板子)->天线<---->天线->CC2540USBdongle->计算机(串行口调试助手软件) 故障:单片机发出:‘123’字符串,计算机的串行口调试助手软件显示:00 00 00 00 00 00 00 00 00 00 00 31 32 33 0d 0a (变成16字节数据)
如果CC2541是官方板子,就没有问题,传输字符串正常。用户板子与官方板子区别:
用户板子:单片机串行口---->CC2541(没有按键,没有LCD)-->天线      而官方板子:计算机(CDC)-->PL2303 (USB 转 RS232)-->CC2541-->天线

回帖(4)

何壮梦

2020-3-17 10:28:12
希望‘TI员工’给关注一下!
举报

刘勇

2020-3-17 10:38:09
参考下这个
http://blog.csdn.net/retacn_yue/article/details/40627051
举报

何壮梦

2020-3-17 10:44:27
怎么看都没有办法理解这个故障!
一样的(CC2541串口透传)程序。板子是两种板子,但是电路基本一样。为什么表现差别那么大呢?
唯一的区别是:一个数据来自单片机,一个数据来自(通过PL2303)计算机。
其他都是一样的!
举报

何壮梦

2020-3-17 10:54:11
引用: ju978779 发表于 2020-3-17 16:38
怎么看都没有办法理解这个故障!
一样的(CC2541串口透传)程序。板子是两种板子,但是电路基本一样。为什么表现差别那么大呢?
唯一的区别是:一个数据来自单片机,一个数据来自(通过PL2303)计算机。

问题解决了,感谢cedar_xuesong 给予一点点关怀。
原因:还是我的单片机程序犯了一个错误:只提供了发数据长度,没有提供数据缓冲区数据位置(起点)值,导致计算溢出,结果是在不相关的地方取数(0x0),错误地填入到了所发数据之前。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分