stm32f103使用16M(非8M)晶振
来源:互联网 发布:mysql分类汇总 编辑:程序博客网 时间:2024/05/01 15:11
STM32F103XX系列的时钟最高位72MHz,通常外接8MHz晶体,官方固件库会配置好PLL输出72MHz,不需要自己写代码。
/* system_stm32f10x.c文件 */void SystemInit(void); //配置时钟void SystemCoreClockUpdate(void); //将HCLK的值更新到变量SystemCoreClock
外接晶体的可选频率为4~16MHz,选择非8MHz的晶体时,需要修改一下几处代码
/* 添加宏定义到stm32f10x.h开头或者IDE的宏定义符号列表中(作为编译器选项) */#define HSE_VALUE ((uint32_t)16000000)
system_stm32f10x.c文件内SetSysClockTo72()函数内找到如下片段
/* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */ RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);
添加一行
/* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */ RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE); RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);
上面是修改了CFGR寄存器的PLLXTPRE位,使16MHz晶振先2分频再进入PLL。
0 0
- stm32f103使用16M(非8M)晶振
- STM32F103外部晶振由8M变为12M
- STM32F103外部晶振由8M变为12M
- STM32F103系列 HSI 48M
- STM32F103 的晶振由8M改为了12M,串口该怎么配置
- STM32使用非8M晶振时如何修改代码
- STM32F103VBT6 使用16M晶振和8M晶振 RCC设置有何不同?
- M
- m
- m,
- m
- m
- M
- ^M
- M
- m
- M
- M
- JVM内存监控工具 JavaMelody
- Fresco简单的使用—SimpleDraweeView
- 源码阅读与分析方法
- Eyesir频频露脸国际舞台 完美幻境“带头老大”意欲何为?
- Android应用界面开发——Handler(实现倒计时)
- stm32f103使用16M(非8M)晶振
- EventBus的源码分析
- 口语语言理解
- ffmpeg代码笔记3:获取MP4视频流的帧率
- user agent stylesheet 处理
- 问题:Hibernate的自动补全属性功能
- 166.Nth to Last Node in List-链表倒数第n个节点(容易题)
- 如何使用MongoDB自带的json库来反序列json字符串
- Winmanager,NERDTree和MiniBufExplorer