STM32时钟配置、GPIO配置
2017-11-14 13:38
330 查看
2017年11月13日 13:37 天气:多云,反正是看不到党的光辉。。。。
今天在配置STM32的时钟和GPIO时,发现了一个现象:GPIO端口的时钟使能信号必须在GPIO的配置之前,否则GPIO就无法正确的输出信号。
发现这个现象的过程也是无心之举,我原本是把打开GPIO端口的时钟语句放在了时钟配置函数当中,因为那个寄存器就是在时钟寄存器那一章节。然而我发现GPIO所对应的LED根本就不能按照程序正确的输出,要么全部是高,要么全部是低电平。
经过对比示例程序我发现我的程序在逻辑上是没有任何的问题的,只是有些配置的语句可能先后顺序有点不一样,但是不影响。最后就定位到了那个RCC_APB2ENR寄存器,这个寄存器中可以配置GPIO端口的时钟使能信号,我发现配置RCC_APB2ENR寄存器的语句放在不同的位置时,程序最后的表现结果不一样,左后就得出了上面的结论。然后,我把原本正常的示例程序按照上面的结论修改配置RCC_APB2ENR寄存器在程序中的位置,发现确实是这样子的,由于数据手册没有看的很仔细,只是按照我以前的开发经验在进行配置,所以不知道数据手册当中有没有后指出。
不管数据手册当中有指出来,并且如果真的是与那个配置语句的位置有关,都让我觉得这个设计真的很奇葩。
今天在配置STM32的时钟和GPIO时,发现了一个现象:GPIO端口的时钟使能信号必须在GPIO的配置之前,否则GPIO就无法正确的输出信号。
发现这个现象的过程也是无心之举,我原本是把打开GPIO端口的时钟语句放在了时钟配置函数当中,因为那个寄存器就是在时钟寄存器那一章节。然而我发现GPIO所对应的LED根本就不能按照程序正确的输出,要么全部是高,要么全部是低电平。
经过对比示例程序我发现我的程序在逻辑上是没有任何的问题的,只是有些配置的语句可能先后顺序有点不一样,但是不影响。最后就定位到了那个RCC_APB2ENR寄存器,这个寄存器中可以配置GPIO端口的时钟使能信号,我发现配置RCC_APB2ENR寄存器的语句放在不同的位置时,程序最后的表现结果不一样,左后就得出了上面的结论。然后,我把原本正常的示例程序按照上面的结论修改配置RCC_APB2ENR寄存器在程序中的位置,发现确实是这样子的,由于数据手册没有看的很仔细,只是按照我以前的开发经验在进行配置,所以不知道数据手册当中有没有后指出。
不管数据手册当中有指出来,并且如果真的是与那个配置语句的位置有关,都让我觉得这个设计真的很奇葩。
相关文章推荐
- STM32为什么必须先配置时钟再配置GPIO
- STM32为什么必须 先配置时钟 再配置GPIO
- STM32为什么必须先配置时钟再配置GPIO
- stm32变更外部晶振时如何配置时钟、以及HSI的使用
- STM32 HAL库 GPIO配置
- stm32时钟系统配置
- stm32 时钟配置_外部时钟倍频、内部时钟倍频 【worldsing笔记(作者嵌入式见解深刻,很好的链接)】
- stm32 RTC时钟配置
- STM32时钟配置方法详解
- STM32的GPIO口的8种配置模式
- STM32的GPIO输入输出模式配置
- STM32的GPIO可供配置的选项
- STM32定时器时钟配置
- 关于STM32 PB3 PB4 如何设置成普通GPIO的配置
- 第15章 RCC—使用HSE/HSI配置时钟—零死角玩转STM32-F429系列
- STM32学习笔记——AFIO时钟的配置问题
- STM32系统时钟设置,采用外部有源晶振相关配置问题
- STM32之GPIO配置问题
- STM32时钟配置
- STM32之GPIO端口输入模式配置举例