❶ stm32f10x怎麼定義使用內部晶振
pllmulti = (sysclk/HSE_VALUE) - 2;//計算基於外部時鍾源時,PLL的纖陸倍頻因子
RCC->CR |= 1<<16; //使能外部時鍾源HSE
while((RCC->CR & 1<<17) == 0); //等待外部時毀腔頃鍾源就緒
RCC->CFGR |= pllmulti<<18; //設置PLL倍頻
RCC->CFGR |= 4<<8; //AHB=DIV1,APB1=DIV2,APB2=DIV1,注圓枝: PCLK1不能超過36MHz
RCC->CFGR |= 1<<16; //選擇HSE作為PLL時鍾源
FLASH->ACR|= 0x32; //FLASH 2個延時周期
RCC->CR |= 1<<24; //PLL使能
while((RCC->CR & 1<<25)==0); //等待PLL鎖定
RCC->CFGR |= 0x02; //PLL作為系統時鍾
while((RCC->CFGR>>2 & 3)!=2); //等待系統時鍾切換成功
RCC_GetClockFreq(&RCC_ClocksStatus); //獲取系統時鍾狀態
}
❷ STM32板的晶振不起振,怎麼辦
1.
STM32f103有內部晶振。吵裂數剛剛上電時,所有Clock都是源於內部晶振,所以當片內沒有程序或內部程序沒有使能外部晶振時,外部晶振是不會起振的。
2.
STM32f103有內部復位電路,源枯只有當檢測到外部電壓大於電壓閥值時才會啟動。因為需要檢測外部電壓,所以模擬Ref/VDDA/VSSA不能開路,做實驗是可以將Ref/VDDA與3.3V鏈接,VSSA與GND鏈升首接。
3.
串口連接時,要記得正確配置好Boot0和Boot1引腳的電平。
4.
Jlink鏈接時,要注意是JTAG模式還是SWD模式。(一般5個腳的,包含3.3V和GND的是SWD模式;引腳多的是JTAG模式。
懷疑問題很可能出在第二點。
❸ stm32不接晶振可以下程序嗎
可以。
下載程序和晶振是否起振沒有關系,因為stm32不用外部晶振都能運行起來,因此不用懷疑晶振滾仿的問題。
STM32系沖備陵列都有內部振盪器,所以完全可以不用外部晶振,但是內部振盪器的散戚精度不高。