我的方案选择为MCU+BLE(CC2541)的方式,CC2541主要的作用就是数据透传,MCU和CC2541通过串口传输数据,串口没有使用硬件流,波特率为38400,每一次CC2541收到MCU传输的数据就将其发给手机,手机再回复给CC2541,CC2541再通过串口传给MCU。当我有大量的数据需要透传时,在使用中发现当连接间隔设置为30ms时,有很多UART通信数据会出现帧错误,把连接间隔设置为60ms时,UART就较少出现帧错误?请问这个是什么原因?是因为蓝牙中断导致UART传输中出现问题吗?因为数据大,对时间要求高,越快越好,请问如何可以在较短的时间传输而不出现错误(比如25ms)?
另外,想问下CC2640会不会出现这样的问题?
Viki Shi:
POWER_SAVING有没有开?关掉试试
jin guo1:
回复 Viki Shi:
Dear Viki:
不好意思,这几天出差,回复的比较晚了。关掉power save还是一样,我是担心会不会是蓝牙传输数据时会导致串口中断并出现帧错误?
Barbara Wu:
请问是基于TI的例程在做的吗?
UART的数据通讯量大概是多少?如果对UART口上的数据进行分包频繁发送,是否效果会好一些?
CC2541使用的是OSAL系统,基本逻辑是轮询。当BLE连接频繁的时候,分给其他操作的时间片就有限,因此可以考虑分包频繁发送UART数据。
另外添加流控会有帮助。
CC2640采用的是M3的核,从处理能力上来说一定比CC2541要强。
jin guo1:
回复 Barbara Wu:
Dear WBJ:
是基于TI的例程做的。
UART的数据量一次大概有600个包左右.
如果对UART口上的数据进行分包频繁发送,是否效果会好一些?
—>显示是UART收一个包蓝牙就发一个给手机,然后手机回一个包给CC2541,CC2541再通过UART回给MCU
您的意思是CC2541一次将数据收完后在对这些数据进行分包频繁发送吗?
如果直接打开TI例程中的软件流,因为我使用的MCU没有自带的流控脚位,MCU自定义流控脚位是否有什么需要注意的?
感谢!