在WIKI上下载了SimpleBLEPeripheral UART BLE1v3 02072013.zip 测试使用了一下,发现CC2541串口接收数据时要把流控制打开才能正常,或者是将POWER SAVING 去掉也能正常接收数据。请问有没有什么方法在不使用流控制的情况下,POWER SAVING也启用,CC2541能正常接收数据呢?
zhenhao liao:
没人关心,自己顶一下!
CC2540蓝牙4.0BLE开发:
有办法
Barbara Wu:
请看一下void NPI_InitTransport( npiCBack_t npiCBack ) 函数内对串口的初始化设置
修改一下初始化设置应该是可以把流控关掉的
zhenhao liao:
回复 Barbara Wu:
其实我想问的是流控关掉以后,POWER SAVING开启,怎么才能让UART正常工作,我现在遇到的问题是UART接收和发送数据都不正常了!
kerwin liu1:
回复 zhenhao liao:
你好,我现在也遇到了power_SAVING 开启后(串口的流控是关的),串口就不能正常工作了,请问你是怎么解决POWER_SAVING UART不能正常工作的啊!!?
zhou zhou3:
回复 zhenhao liao:
liao,你好,我现在也遇到了这种情况,就是在开启了power saving后如果是关掉流控制的话就会出现串口不能工作,在助手上面发现CTS是为"1”的,现在想在不启用流控制的条件下开启power saving的环境下让UART工作。希望能得到回复,多谢
ming li17:
回复 zhou zhou3:
我也遇到了,同求
Light J:
回复 ming li17:
uart属于外设,power saving打开之后32M晶振受CPU管理,晶振都关闭了外设当然不工作。建议在设计的时候预留一个引脚做GPIO,开启中断,发数据的一方先发送一个脉冲用来唤醒CPU,除能电源管理,然后接收串口数据,接收完了再使能电源管理。也可以直接用串口切换成GPIO接收唤醒中断,醒了再切换成串口,但不建议这样做,反正我失败了。
ming li17:
回复 Light J:
当开启POWER_SAVING后,32M晶振停止工作,启用32k晶振。
当我在调用UART发送数据之前,调用函数osal_pwrmgr_device(PWRMGR_ALWAYS_ON),来保证UART正常通信
在发送完之后再调用 osal_pwrmgr_device(PWRMGR_BATTERY)进入低功耗模式。用这个方法可以来保证低功耗。
现在我有2个问题:
1.在开启POWER_SAVING后,UART不能正常使用,说明晶振不在32M下,但是LCD,LED等可以正常使用,这算是进入低功耗了吗?
2.绝对的低功耗(PM2 就行了吧)下,只有系统运行的是什么程序呢?
yongguang liu:
回复 zhou zhou3:
您好!您说的这个问题解决了吗?我也遇到这个问题,POWER_SAVING定义后,cc2541作为从机收到手机发来的数据后,想利用NPI_WriteTransport()发给与其相连的一个MCU,但是串口无输出,该如何解决?