关于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脚,即可观察到波形。

 

转载于:https://www.cnblogs.com/aistar/p/5457376.html

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值