}while((temp&0x01)&&!(temp&(1<<16)));//等待时间到达SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;//关闭计数器SysTick->VAL =0X00;//清空计数器} 今天我用delay_ms来延时5s,嗯,delay_ms(5000),发现led灯亮的时间绝对不可能是5秒。我以为我的系统时钟没有配置好,查了半天,系统复习了下stm32的时钟...
__delay_cycles()是编译系统"涵数",IAR编译时会替换成相应的循环代码. 看图片,要求delay 100指令(时钟)周期,编译后刚好100周期. 使用这种延时需要注意: http:///thread-756021-1-1.html #define _delay_us(A)\ __delay_cycles( (uint32) ( (double)(F_CPU) *((A)/1000000.0) + 0...