代人凌峰
获得 382 次赞
帮助过869人
最近在做IAP,在STM32的启动文件中发现有一个 " B . "语句,查到是跳转到当前指令的意思,所以说这一句是个死循环吗? 那它在这里有什么用呢?
使用KEIL对STM32指定FLASH下载程序,想要在指定FLASH地址烧录程序,而不覆盖其他区域。试过在Options for target的target设置和linker设置.sct,但是程序烧录会覆盖掉非指定区域
systick延时程序参考野火的例程#include "SysTick.h"static __IO u32 TimingDelay;void SysTick_Init(void){ if (SysTick_Config(SystemCoreClock / 100000)) { while (1); } SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;}void Delay_us(__IO u32 nTime){ TimingDelay = nTime; SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; while(TimingDelay != 0);}void TimingDelay_Decrement(void){ if (TimingDelay != 0x00) { TimingDelay--; }}void SysTick_Handler(void){ TimingDelay_Decrement(); }平常使用是没有任何问题的,但是有时候在定时器中断中调用延时函数就会卡死在延时中, while(TimingDelay != 0); 就是这一句话,不知道有没有人遇到这样的问题