STM32 时钟系统和内部结构
来源:互联网 发布:长沙软件培训机构 编辑:程序博客网 时间:2024/06/13 03:51
STM32 时钟系统和内部结构
为什么需要进行是时钟配置?
所有的外设都需要时钟管理;
具有开关作用,当某些管脚不需要连接外设时,可以选择性的进行时钟的关闭,还可以配置时钟的速度,能够有效的减少耗电量。
从上图可以看出,共有四路时钟源:
内部高时钟源、内部低时钟源、外部高时钟源、外部低时钟源。
那么为什么需要配置内、外部时钟源呢?是否多余呢?
那开玩笑。人家费脑细胞能白干活?肯定是有用武之地的。
虽然外部时钟比内部时钟具有更高的精度,但是相对于内部时钟源,其稳定性和可靠性较低。也就是说,当外部时钟失效后,还有内部时钟进行补充,保证系统正常工作。
其中,
CSS端(黄色方块)的作用:时钟监视系统(设计的很走心),因为外部时钟最终有一路接CPU,接CPU,接CPU,就像上面讨论的一样,如果外部时钟不起作用怎么办?CPU是芯片的心脏啊,时钟可不能停啊,因此,CSS的作用就是当外部高时钟不起作用时,切换开关,接入内部高时钟源,保证CPU正常工作。
MCO端的作用:怎么才能知道时钟源是否起作用呢?MCO就作为外部检测,看看内部电路是否正常;还可以将其引出,作为其他电路的时钟源。
锁相环:这里起的作用是倍频效果。
RCC程序流程:
设置时钟流程:
1、将RCC寄存器重新设置为默认值 RCC_DeInit
2、打开外部高速时钟晶振HSE RCC_HSEConfig(RCC_HSE_ON);
3、等待外部高速时钟晶振工作 HSEStartUpStatus=RCC_WaitForHSEStartUp();
4、设置AHB时钟 RCC_HCLKConfig;
5、设置高速APB时钟 RCC_PCLK2Cconfig;
6、设置低速APB时钟 RC1C_PCLK1Config;
7、设置PLL RCC_PLLConfig;
8、打开PLL RCC_PLLCmd(ENABLE);
9、等待PLL工作; while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);
10、设置系统时钟; RCC_SYSCLKConfig;
11、判断PLL是否是系统时钟; while(RCC_GetSYSCLKSource()!=0x08)
12、打开要使用的外设时钟 RCC_APB2PeriphClockCmd()
RCC_APB1PeriphClockCmd()
- STM32 时钟系统和内部结构
- STM32之复位和系统时钟
- STM32系统时钟
- stm32的时钟系统
- STM32之系统时钟
- STM32系统时钟
- STM32之系统时钟
- STM32 系统时钟设置
- STM32时钟系统
- STM32系统时钟修改
- stm32时钟系统
- STM32 系统时钟设置
- STM32时钟系统
- STM32 时钟系统
- STM32系统时钟配置
- STM32 时钟系统
- STM32时钟系统
- STM32系统时钟配置
- org.apache.hadoop.hbase.TableNotFoundException: SYSTEM.CATALOG exception with phoenix 4.5.2
- NERDTree 快捷键
- Log4j的应用
- 伪最大堆顶堆排序--没有真正理解最大堆
- Java Stream(1)
- STM32 时钟系统和内部结构
- Toolbar的三个问题:修改左边箭头颜色、怎样修改右边以及子activity中的toolbar添加返回箭头
- NSString方法compare详解
- 代码管理
- android 一个app分享内容到另外一个app,接受的app接受后并显示
- mysql中[Err] 1093
- 【带权并查集】 练习
- 【Java学习笔记】11.内部类
- request如何获取IP