2021年618京享红包 - 618大促主会场
九阳 Joyoung电磁炉 电陶炉 2200W大功率 家用火锅套装 旋转控温 红外光波加热 H22-x3 赠烤盘
凯迪仕电子锁618狂欢购
有健康 更热爱
美丽雅品牌会员周

单片机F4与F1的外部晶振和延时

玺欢你 9月前   阅读数 70 0

F4系列

延时:系统滴答定时器

SysTick_Config(168000);延时1ms,就是进入void SysTick_Handler(void)中断的时间是1ms
168MHZ是怎么来的??
单片机的时钟频率是怎么来的?
看图:
在这里插入图片描述
单片机的最高时钟频率是由外部晶振进行提供的
比如,F4的开发板的外部晶振是8MHz,
8MHz的经在进行/M的分频之后进入PLL锁相环,在进行*N的倍频之后,再进行/P分频就得到了PLLCLK====也就是SYSCLK最高168MHz
程序中在smt32f4xx_it.h中的修改位置如下:
在这里插入图片描述
8MHz/8*336/2=168MHz
即使把这里修改了,但是,在串口打印的时候,也可能会出现乱码
在这里就会出现两个情况,

  1. 使用寄存器编写的串口初始化函数就不会出现乱码
  2. 使用库函数编写的串口初始化函数就会出现乱码
    其根本原因是没有修改 smt32f4xx.h 中是外部晶振频率,系统默认是25000000hz 修改成8000000就可以了,就不会出现乱码了在这里插入图片描述

F1系列

F1的串口乱码和延时1ms也是修改stm32f10x_it.h中的相关频率,也是根据外部晶振频率进行相关设定的
代码具体位置:
在这里插入图片描述
F1最高是72MHz,如果外部晶振是8MHz的话,就写成:RCC_CFGR_PLLMULL9
如果外部晶振是12MHz的话,就写成:RCC_CFGR_PLLMULL6


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: