CC2541 UART 与POWER SAVING还有流控制的问题
在WIKI上下载了SimpleBLEPeripheral UART BLE1v3 02072013.zip 测试使用了一下,发现CC2541串口接收数据时要把流控制打开才能正常,或者是将POWER SAVING 去掉也能正常接收数据。请问有没有什么方法在不使用流控制的情况下,POWER SAVING也启用,CC2541能正常接收数据呢?
没人关心,自己顶一下!
有办法
请看一下void NPI_InitTransport( npiCBack_t npiCBack ) 函数内对串口的初始化设置
修改一下初始化设置应该是可以把流控关掉的
其实我想问的是流控关掉以后,POWER SAVING开启,怎么才能让UART正常工作,我现在遇到的问题是UART接收和发送数据都不正常了!
你好,我现在也遇到了power_SAVING 开启后(串口的流控是关的),串口就不能正常工作了,请问你是怎么解决POWER_SAVING UART不能正常工作的啊!?
liao,你好,我现在也遇到了这种情况,就是在开启了power saving后如果是关掉流控制的话就会出现串口不能工作,在助手上面发现CTS是为"1”的,现在想在不启用流控制的条件下开启power saving的环境下让UART工作。希望能得到回复,多谢
我也遇到了,同求
uart属于外设,power saving打开之后32M晶振受CPU管理,晶振都关闭了外设当然不工作。建议在设计的时候预留一个引脚做GPIO,开启中断,发数据的一方先发送一个脉冲用来唤醒CPU,除能电源管理,然后接收串口数据,接收完了再使能电源管理。也可以直接用串口切换成GPIO接收唤醒中断,醒了再切换成串口,但不建议这样做,反正我失败了。
当开启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 就行了吧)下,只有系统运行的是什么程序呢?
您好!您说的这个问题解决了吗?我也遇到这个问题,POWER_SAVING定义后,cc2541作为从机收到手机发来的数据后,想利用NPI_WriteTransport()发给与其相连的一个MCU,但是串口无输出,该如何解决?
利用NPI_WriteTransport()发送可能有问题,如果单独发送几个字节建议用底层函数,POWER_SAVING状态下应该可以发送出来的。我测试发送一个字节是不会丢。
谢谢!我试着在cc2541 uart发送前重新初始化时钟、DMA、UART,还是无法实现正常发送,关于这方面问题没找到明确解决方法,TI工程师也通常只是给一个例子,但与实际应用有所差别