HI ALL:
用定时器一输入4路PWM,在裸机的情况下能通过改变占空比改变LED的亮度。
但在同样的程序在BLE协议中,改变占空比LED只会有不同的频率闪烁。
PWM在设备启动时候初始化,更新PWM占空比在特征值改变的时候。
想了解下是否有定时器占用或者端口占用的情况,还是其他原因,希望有经验的帮下我,无尽感激
Chunbo Fan:
系统在进入低功耗(PM2)的时候,PWM模块的电源会被关闭,就会出现没有PWM波输出,
而是输出一个固定电平;当退出低功耗的时候,又重新输出PWM波。建议LZ查看一下,
是否开启了低功耗模式。
闪烁分析: 有可能是隔一段时间进入低功耗,所以出现LED闪烁情况。
wenqi lu:
回复 Chunbo Fan:
HI Chunbo Fan:
感谢你的回答
POWER_SAVING=FALSE,预编译我已经关闭低功耗模式的
Chunbo Fan:
回复 wenqi lu:
建议在线调试,当特征值改变时,PWM对应的timer定时器相关寄存器的值,是否与
预想的相同。配置是否被其他程序篡改过。
猜想,裸机的时候,只有你自己的配置代码起作用。加了BLE协议栈后,或许协议栈里面的
其他代码也对timer寄存器做了配置或访问。
Chunbo Fan:
回复 wenqi lu:
刚看了进入低功耗的那段代码,
#if defined( POWER_SAVING )
。。。
#endif
这个宏说明了,并非POWER_SAVING=FALSE 就可以关闭低功耗,
只要定义了这个宏,就会进入低功耗,和是否为FALSE无关。
建议 用xPOWER_SAVING关闭低功耗。
wenqi lu:
回复 Chunbo Fan:
HI Chunbo Fan
谢谢你的耐心指导,我尝试下