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 ; //清空計數值
}
|