广播模式下,CC2541接受串口数据乱码!
时间:10-02
整理:3721RD
点击:
使用CC2541的uart遇到这么情况,在广播模式模式下,cc2541 接受uart 数据,经常接受到错误数据,调用NPI_RxBufLen 读取到的数据大小为128!!!
难道 uart 的DMA 被ble 协议通信挤占?
补充:在非广播/连线 状态下测试,接包正常。
不太可能您说的情况吧 如果是挤占 也没有理由是广播的时候 因为广播的时候实际上协议栈使用的资源最小 都没有连接需要维护啊
BufLen不对,数据也不对吗?
您好! 后面重新确认了,BufLen 是对的,之所以一开始出错,是因为程序中数据接受错误则进入我设了断点,虽然进入了断点,但pc还是在不停的想CC2541发送数据。
但是数据确实是无错误的,但不是全部错误,后面几个byte是对的.
PC 发送的数据: 0F 01 23 12 21 23 23 12 12 32 31 21 21 22 0D 0A
cc2541接受的数据: 40 24 A2 1A 1A 92 12 32 31 21 21 22 0D 0A
有没有可能是数据发送的太多 导致丢失了呢?
应该不是,我在非广播/连接模式下测试,没有出现过接受乱码。
广播的时候,肯定干扰到了我串口的数据接受工作,是不是干扰到了DMA,广播模式下,uart 的DMA是不是被一些资源干扰或占用呢?
我是工作在非省电模式下,协议栈是1.4的。
在广播状态下就不会进休眠 所以和休眠应该关系不大
感觉可以看看有没有可能和时钟相关