可編程晶振的設(shè)置很多人其實不知道除了按照說明書上操作,也可以看視頻教程尤其是對于可編程晶振設(shè)置的方面都是這些細(xì)節(jié)都是選擇,另外也可以咨詢專業(yè)的FAE工程師進(jìn)行分解。
可編程晶振的定義外部晶振宏定義。宏定義的寫法如下:#定義HSE_VALUE ?((uint32_t)24000000)外部晶振想寫多少寫多少。如果是24M外接晶振,就寫成2400000。
如果不需要宏定義,在單片機(jī)的頭文件里找宏定義部分就可以了。頭文件默認(rèn)宏定義為16M外部晶振,可以修改為實際的晶振值。
配置外部晶振。配置外部晶振時,您需要啟用外部時鐘,并等到晶振穩(wěn)定。使用庫函數(shù)配置的語句如下:void ?CLK_Init(){CLK_HSECmd(使能);//外部時鐘開啟while(設(shè)定!=CLK ?_獲取標(biāo)志狀態(tài)(CLK ?_標(biāo)志_ hser ?dy));//等待外部晶振振動。CLK ?_時鐘開關(guān)命令(使能);//切換啟用
CLK ?_時鐘開關(guān)配置(CLK ?_開關(guān)模式_手動,CLK ?_源_HSE,禁用,CLK ?_當(dāng)前時鐘狀態(tài)_禁用);//切換到外部晶振CLK ?_ SYSCLKConfig(CLK ?_預(yù)分頻器_ CPU ?div ?1);//1分頻}
在main()中初始化在main()中初始化CLK_Init()。此時,配置了外部晶振,但程序執(zhí)行時,發(fā)現(xiàn)晶振啟動振動失敗,程序在CLK ?_時鐘開關(guān)配置默認(rèn)設(shè)置是無等待狀態(tài),需要修改為1等待狀態(tài)。實際上,這部分的內(nèi)容在數(shù)據(jù)表中有所反映:在高達(dá)24 MHz的較高頻率下使用高速外部時鐘(HSE)時,需要一個等待狀態(tài)。這種情況下,器件選項字節(jié)應(yīng)編程為插入該等待狀態(tài)。參見數(shù)據(jù)手冊選項字節(jié)部分。設(shè)置完成后,下載程序,你會發(fā)現(xiàn)晶振已經(jīng)開始正常振動了。
一般情況下的在設(shè)置可編程晶振的時候需要掌握一定的編程技術(shù),因為只有掌握編程技術(shù)以后就能夠做好的編程了,這些代碼的僅供參考的,因為不同的可編程晶振可能編輯的方式是不同的,在這些方面要合理的做出自己判斷或者的讓廠家直接的進(jìn)行設(shè)置也是可以的。