我在低功耗运行模式下从RAM 运行了 c代码(因此中断没有处理).此模式由代码序列启用:
所以在勘误表中描述的WFE指令没有问题.这种结构的问题,可能是永远低功耗等待模式下 CPU锁定的原因:
while nbit(TIM1_SR1,CC3IF) asm("wfe");
Run Code Online (Sandbox Code Playgroud)
这是拆卸为:
000035 720252B602 BTJT TIM1_SR1, #1, 0xB6
00003A 728F WFE
Run Code Online (Sandbox Code Playgroud)
来自定时器的事件具有概率性质,并且此代码不保证在WFE指令执行后它将发生:
我使用手册PM0044,在第26页它内容漂亮的表:
有两种情况,代码执行在3个周期停止.所以我不确定在BTJT和WFE指令之间不会发生异步唤醒事件.
有没有办法确保严格的逻辑顺序(检查条件> wfe>唤醒事件)?
我像这样编写STM8 GPIO,PD_ODR_ODR4 = 1;但stm32f10x.h没有此功能,是否有任何.h文件定义了位。
抱歉,我不知道如何更好地解释这个问题。
我尝试了多个GPIO库。
强文本