|
玩 STEVAL-IDB007V1 过程中的坑
[复制链接]
熬夜调试完挑战赛的代码,回顾一下我踩到的一些坑
1. BlueNRG-1 在进入 Sleep 或 Standby 模式后,唤醒是从Reset_Handler中断向量开始执行的。小心,底层初始化代码不能随便改。
2. BlueNRG-1 在 Sleep和Standby模式下I/O口不能保持状态,可能因电平不确定产生额外电流消耗。必要的时候需要加上拉或者下拉电阻。
3. 使用 BlueNRG_Sleep() 函数未必就得到想要的低功耗状态。这个API是系统的行为,结合BLE Stack决定是什么状态。
4. Sleep, Standby 模式光靠置 SCB->SCR 中 SLEEPDEEP 位,和用WFI指令是进入不了的。如果想定时唤醒,必须要初始化BLE Stack,哪怕不用无线通信。
5. 在 Sleep 模式下定时唤醒只能通过未公开细节的 BLE Timer 1 & 2, 而不能通过RTC和WDG. API里面 HAL_VTimerxxx 系列函数可以提供服务。
6. Sleep和Standby模式下 BlueNRG-1 的电流可以很低(1uA以下),远小于板载 IMU 器件的最低工作电流。IMU不用的时候务必要设置PD模式。
7. VBLUE电源上测到几百个uA的电流,原因尚不明,不从USB口给板子供电,似乎就正常了。
|
赞赏
-
1
查看全部赞赏
-
|