网友用系统滴答定时器写的ms级或者us级的延时程序 在while循环的判断条件中,似乎都使用了这个 (temp&0x01)&&(!(temp&(1VAL = 0x00; // 当前值清零 SysTick->CTRL = 0x001; // 使能SysTick,选择HCLK 8 分频,即72/8=9MHZ do { temp = SysTick->CTRL; // 读取CLRT寄存器的值,其16位为计数完成标志位COUNTFLAG,读取完毕自动清零 } while((temp&0x01)&&(!(temp&(1VAL = 0x00; // 当前值清零 } 我觉得只使用!(temp&(1 |
RE:关于SysTick问题。
回复:关于SysTick问题。
temp&0x01用来判断systick是否还处于开启状态,防止systick被意外关闭导致死循环
哦,哦,哦,了解了,非常感谢........