STM8S系統時鐘設置,對于單片機來說是非常重要的,不同的用處必須應用不同的時鐘。。舉個例子,做AVR時在高穩定的串口通訊時用的時鐘一般是3.6864M,主要是這個算波特率精確。。STM8S同樣重要。。 STM8S時鐘源:
●1-24MHz高速外部晶體振蕩器(HSE)
●最大24MHz高速外部時鐘信號(HSE user-ext)
●16MHz高速內部RC振蕩器(HSI)
●128KHz低速內部RC(LSI)
各個時鐘源可單獨打開或關閉,從而優化功耗。
本文引用地址:http://www.104case.com/article/201611/320890.htm對于我這么懶得人一般都是用的內部或者外部晶振。。這個芯片時鐘方面很大的一個亮點就是時鐘可以自由分頻。在降低功耗方面,如果有特殊需求的時候還是考慮STM8L系列或者430的吧,不得不承認術業有專攻。
按照技術手冊寄存器功能給寄存器賦值寫成一下函數:
//啟動時鐘配置
void SysClkInit(void)
{
// CLK_SWR=0xe1; //HSI為主時鐘源
CLK_SWR=0xb4; //HSE為主時鐘源
CLK_CKDIVR=0x00;//CPU時鐘0分頻,系統時鐘0分頻
CLK_CSSR=0x01;//時鐘安全監測使能
CLK_SWCR=0x02;//使能自動時鐘切換
}
首先設置時鐘源,也就是時鐘是用內部還是外部,如果對時間精度要求不高,用內部也可以。。然后是時鐘分頻。。這個分頻需要設定系統時鐘和CPU時鐘,這兩個時鐘,如果對此有特殊要求就得好好斟酌一下了,而我全部不分頻。時鐘安全監測還是打開吧,如果用的外部時鐘,但是外部時鐘突然出現故障的話,單片機會自動啟用內部時鐘,內部時鐘默認為8分頻也就是2M。然后時鐘自動切換,好像這個有沒有都可以,去掉能不能使回頭再試。。
開機初始化,在不調用此函數時CPU時鐘默認開啟2M,但是調用此函數后,時鐘切換為16M,LED閃爍速度明顯加快、、
評論