ST意法半导体
直播中

河神大人

9年用户 1537经验值
擅长:电源/新能源
私信 关注
[问答]

STM32l152中的时钟设置问题求解

我正在玩我的 STM32l152 发现板。我有液晶显示器,按钮,LED 工作。我想将我的时钟速度更改为 16Mhz HSI(默认 2Mhz MSI)并且问题开始了。
为了编写我的代码,我使用 RM - 但我遗漏了一些东西。这个配置应该怎么做?
有我的时钟设置代码:(如果需要我可以上传整个项目)
  •         RCC->CR |= (RCC_CR_HSION);                                        //enable high-speed internal oscillator
  •         while(!(RCC->CR & RCC_CR_HSIRDY));                        //wait until oscillator starts
  •         RCC->CFGR |= RCC_CFGR_SW_HSI;                                //set hsi as systemclk
  •         while((RCC->CR & RCC_CFGR_SWS_HSI)!= RCC_CFGR_SWS_HSI);
  •         RCC->CFGR |= (RCC_CFGR_MCOSEL_SYSCLK);                //set mco output to sysclk
  •         RCC->AHBENR |= (RCC_AHBENR_GPIOAEN);                //enable clock for PORTA peripheral
  •         RCC->AHBENR |= (RCC_AHBENR_GPIOBEN);                //enable clock for PORTB peripheral
  •         RCC->AHBENR |= (RCC_AHBENR_GPIOCEN);                //enable clock for PORTC peripheral
这是在 main() 之后。这是正确的方法吗?
实际发生了什么:
重置后处理器并不总是启动(led 不闪烁)。当它有时启动时 - MCO 输出上的信号不是每次都出现(2/10 次?)而且 - LED 有时在 2Mhz 时钟上闪烁,有时在 16Mhz 时钟上闪烁(不知何故返回默认值?)。






回帖(1)

刘玲

2023-1-29 11:17:27
在更改 PWR 寄存器之前是否设置了 RCC_APB1ENR.PWREN?
举报

更多回帖

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