STM32
直播中

张伟

7年用户 1634经验值
私信 关注
[问答]

怎样去配置STM32 GPIO端口的时钟呢

怎样去配置STM32 GPIO端口的时钟呢?在配置过程中发现了什么问题?怎样去解决?

回帖(1)

许印固

2021-11-22 10:01:37
  今天在配置STM32的时钟和GPIO时,发现了一个现象:GPIO端口的时钟使能信号必须在GPIO的配置之前,否则GPIO就无法正确的输出信号。
  发现这个现象的过程也是无心之举,我原本是把打开GPIO端口的时钟语句放在了时钟配置函数当中,因为那个寄存器就是在时钟寄存器那一章节。然而我发现GPIO所对应的LED根本就不能按照程序正确的输出,要么全部是高,要么全部是低电平。
  经过对比示例程序我发现我的程序在逻辑上是没有任何的问题的,只是有些配置的语句可能先后顺序有点不一样,但是不影响。最后就定位到了那个RCC_APB2ENR寄存器,这个寄存器中可以配置GPIO端口的时钟使能信号,我发现配置RCC_APB2ENR寄存器的语句放在不同的位置时,程序最后的表现结果不一样,左后就得出了上面的结论。然后,我把原本正常的示例程序按照上面的结论修改配置RCC_APB2ENR寄存器在程序中的位置,发现确实是这样子的,由于数据手册没有看的很仔细,只是按照我以前的开发经验在进行配置,所以不知道数据手册当中有没有后指出。
  不管数据手册当中有指出来,并且如果真的是与那个配置语句的位置有关,都让我觉得这个设计真的很奇葩。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分