CC2541 串行口透传,电脑(串行口调试助手)显示:字符串前被填满了‘0x0’
时间:10-02
整理:3721RD
点击:
蓝牙芯片: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-->天线
希望‘TI员工’给关注一下!
参考下这个
http://blog.csdn.net/retacn_yue/article/details/40627051
怎么看都没有办法理解这个故障!
一样的(CC2541串口透传)程序。板子是两种板子,但是电路基本一样。为什么表现差别那么大呢?
唯一的区别是:一个数据来自单片机,一个数据来自(通过PL2303)计算机。
其他都是一样的!
问题解决了,感谢cedar_xuesong 给予一点点关怀。
原因:还是我的单片机程序犯了一个错误:只提供了发数据长度,没有提供数据缓冲区数据位置(起点)值,导致计算溢出,结果是在不相关的地方取数(0x0),错误地填入到了所发数据之前。