首页 > 其他分享 >STM32L031 使用外部时钟卡死的问题,不能正常启动的原因

STM32L031 使用外部时钟卡死的问题,不能正常启动的原因

时间:2024-08-18 08:56:20浏览次数:10  
标签:STM32L031 ClkInitStruct HSI OscInitStruct HAL 卡死 时钟 RCC

芯片是STM32L031G6U6,芯片没有外部晶振引脚,想要高精度时钟只能通过PA0输入外部时钟,选用有源晶振8MHz

按照CubeMX生产的初始化时钟函数后发现启动不了,必须用HSI才行,仿真发现卡死在ADC校准函数  HAL_ADCEx_Calibration_Start(&stm32_adc_obj[i].ADC_Handler,ADC_SINGLE_ENDED); 这里

问题原因:此芯片的ADC时钟只能用HSI,初始化外部时钟时没有打开HSI

 

初始化代码增加使能HSI即可

void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  /** Configure the main internal regulator output voltage
  */
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

  /** Initializes the RCC Oscillators according to the specified parameters
  * in the RCC_OscInitTypeDef structure.
  */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI;
  RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;//stm32L031芯片的adc必须启动HSI
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    Error_Handler();
  }

  /** Initializes the CPU, AHB and APB buses clocks
  */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSE;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
  {
    Error_Handler();
  }
}

 

标签:STM32L031,ClkInitStruct,HSI,OscInitStruct,HAL,卡死,时钟,RCC
From: https://www.cnblogs.com/arthurly/p/18365260

相关文章

  • 震惊,ADC时钟频率不是84Mhz?
    前言单片机只能去处理数字量(0/1),但不能去处理一些多值数据(模拟电压值),如果需要处理模拟量,需要借助模数转换器(ADC)进行转换,把模拟量转换为MCU可以处理的离散数字量。一、ADC时钟说明由时钟树我们可知,ADC挂载在APB2上,那么它的频率本应该是84Mhz,但事实果真如此吗?其实不是的......
  • 石油化工行业同步时钟系统选型推荐
    石油化工行业热度不减,对时间同步要求更高在数智化浪潮中,石油化工行业作为工业“血液”热度不减,并且在数字化转型中使用了更多工业自动化系统提质增效。石油化工企业的工业自动化系统复杂且多样,通常包括多个集成的子系统和技术,如:集散控制系统(DCS)、安全仪表系统(SIS)、可燃和有毒......
  • GPS时钟服务器(NTP授时服务器)助力厂站自控系统
    GPS时钟服务器(NTP授时服务器)助力厂站自控系统GPS时钟服务器(NTP授时服务器)助力厂站自控系统京准电子科技官微——ahjzsz厂站自动化系统的正常运行离不开时间的准确计量,而且需要高精度的时间,否则就会因为时间不确定性引发许多......
  • 差一点就完美了!原子侠X7 Ti迷你主机评测:豪华三网卡七USB 灵动屏还能当时钟摆件
    一、前言:迷你主机也用上AI处理器/外围扩展给出十足诚意要说最合适办公的PC是什么,在我看来非迷你主机莫属,小巧的体积、适中的性能、丰富的接口和扩展,可满足办公时的大部分需求了。这也得益于Intel/AMD“神仙打架”,移动端处理器迅速迭代,性能不再羸弱,功耗发热控制得当,才让迷你主机......
  • 【STM32】SPI通信和RTC实时时钟
    个人主页~SPI通信和RTC实时时钟SPI通信一、简介二、硬件电路三、基本原理四、SPI时序1、时序基本单元2、时序五、FLASH操作注意事项1、写入操作2、读取操作六、SPI外设1、简介2、结构七、传输方式1、主模式全双工连续传输2、非连续传输RTC实时时钟一、Unix时间戳......
  • USB编码方式(NRZI)及时钟同步方式
    1.概述在同步通讯系统中,两个设备通讯则需要同步信号,同步信号分为时钟同步信号和自同步信号两种,时钟同步方式在通讯链路上具有时钟信号(IIC、SPI),自同步方式在通讯链路中没有同步信号(PCIE、USB),自同步方式常常适用于高速通讯系统中。2.USB自同步传输首先,USB的数据是串行发送的,就像......
  • ; 每隔10分钟定时关闭并重启蘑菇游戏下载器,防止下载器卡死宕机死机停止下载的AutoHot
     ;每隔10分钟定时关闭并重启蘑菇游戏下载器,防止下载器卡死宕机死机停止下载的AutoHotkey脚本2024年8月7日  ;每隔10分钟定时关闭并重启蘑菇游戏下载器,防止下载器卡死宕机死机停止下载的AutoHotkey脚本2024年8月7日;测试环境:AutoHotkey_1.1.37.02_Setup.exe&Win......
  • 记一次STM32使用I2C PinRemap引脚重映射出现卡死现象
    在移植WouoUI到STMF103C8BluePillboard时,发现会出现上电卡死在I2C检查函数(如下图)本人遇到的现象:在习惯使用的(SWI2C/HWI2C)@(PB8->SCLPB9->SDA)连接OLED的情况下,大多数情况使用江科大的SWI2C,一切正常。今天跑某开源基于u8g2库的UI框架WouoUI(HWI2C)@(PB6->SCLPB7->SDA)遇......
  • NTP时钟服务器(NTP授时服务器)系统应用
    NTP时钟服务器(NTP授时服务器)系统应用NTP时钟服务器(NTP授时服务器)系统应用京准电子科技官微——ahjzsz本文主要解释了区块链中的重要功能:工作证明(Proof-of-Work)。主要说明工作证明对于区块链是一个重要特征,而且是必须的;区块链中其他经常被提及特征(如安全性)反而是次要的,虽有用......
  • 时钟(STM32F103)
    时钟是具有周期性的脉冲信号,最常用的是占空比50%的方波时钟是单片机的脉搏时钟源:              频率         材料              用途高速外部振荡器(HSE)   4-16MHz     晶体/陶瓷       ......