使用GD32F103晶片的過程中出現上電不啟動的問題,連接配接SWIO燒錄線,下載下傳程式後可啟動MCU,但是斷電再上電後卻無法啟動,從以下幾個點尋找原因:
1、硬體
①RC複位電路-----正常
②BOOT0接地或者10k下拉-----使用1k下拉
為排除硬體問題,編寫一個簡單的點燈程式,測試後晶片上電啟動正常。
2、軟體
①确認外部晶振起振逾時時間-----正常,已設定0xFFFF
do{
timeout++;
stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB);
}while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout));
/* if fail */
if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){
while(1){
}
}
②勾選 use MicroLIB-----已勾選
③禁用JTAG,使能SWD----已禁用
④初始化晶片後,延時一段時間再讀取外設-----未加延時-問題所在
初始化完成需要時間,外設未準備好之前讀取可能導緻單片機跑飛
int main(void)
{
systick_config();
dma_config();
usart_config();
nvic_config();
key_gpio_init();
key_exti_init();
timer_config();
delay5ms();
CTRL_12VA(1);
while(1)
{
}
}