關於STM32F407時鍾MCO1的使用


我們在使用STM32F407時,有時需要對外部器件提供MHz級的時鍾信號,這使得我們非常頭疼,如果使用定時器來實現的話,那么MCU就不用干別的了,怎么辦呢?我們可以使用STM32F407的時鍾信號輸出。

其中STM32F407的時鍾系統,不再介紹,請參考STM32F407使用手冊;

下面就以MCO1為例,來輸出8MHz頻率的方波,MCO1與PA.8共用一個引腳;

晶振采用8MHz,這樣系統時鍾經過倍頻后為168MHz,其中HSI經過分頻后可得到16MHz的頻率,我們采用此信號,經過2分頻后輸出8MHz的時鍾信號,當然,我們也可以采用其他信號來產生其他的頻率。

代碼如下:

void Mco1_8MHz_Init(void)
{
  GPIO_InitTypeDef  GPIO_InitStructure;
  
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能PA

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;//PA8
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//復用功能開啟

  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽輸出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//50MHz


  GPIO_Init(GPIOA, &GPIO_InitStructure);  、


 RCC_MCO1Config(RCC_MCO1Source_HSI,RCC_MCO1Div_2);   //配置時鍾為HSI,16M  2分頻

}

配置好后,只需完成初始化即可,使用示波器觀察PA8腳,即可觀察到波形。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM