32f407单片机滴答定时器精准延时,延时0ms,写进去后,芯片一通电就发热,热到一定程度就崩溃了,复位也没用,
int main()
{
Delay_ms(0);
GPIO_ToggleBits(GPIOF,GPIO_Pin_10);
}
void Delay_ms(uint32_t nTime)
{
uint_t delay_ms=21000;
SysTick->LOAD = nTime*delay_ms ; //重装载寄存器,最大计数值
SysTick->VAL = 0x00 ; //清空计数值
SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk ; // 开启倒数
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&& !(temp & (1<<16))); //等待倒数到0为止
SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk ; // 关闭计数器
SysTick->VAL = 0x00 ; //清空计数值
}
|