项目中一个是IAP程序,另一个是APP程序,两个程序都是使用STM32CubeIDE生成,当程序跳转到APP中并且执行到函数SystemClock_Config中的时候,在初始化锁相环调用HAL_RCC_OscConfig函数的时候返回HAL_ERROR或者直接卡死在里面。 为什么在IAP中可以初始化通过,但是在APP中却通不过,查阅STM32F4xx参考手册发现这么一段话: 那...
if (HAL_RCC_ClockConfig(&clkinitstruct, FLASH_LATENCY_2)!= HAL_OK){ /* Initialization Error ...
按照CubeMX生产的初始化时钟函数后发现启动不了,必须用HSI才行,仿真发现卡死在ADC校准函数 HAL_ADCEx_Calibration_Start(&stm32_adc_obj[i].ADC_Handler,ADC_SINGLE_ENDED); 这里 问题原因:此芯片的ADC时钟只能用HSI,初始化外部时钟时没有打开HSI 初始化代码增加使能HSI即可 voidSystemClock_Config(void) { RCC_...
随后程序卡死在void SystemClock_Config(void)中的if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK),。 解决 查找用STM32CubeMX RCC时钟选项,发现HSE选择与开发板的板载晶振不同,从而导致程序(RCC配置失败)卡死。 Disable:禁用外部时钟 BYPASS Clock Resource:外部有源晶振(旁路时钟源) Crystal/Ceramic...
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;if (HAL_RCCEx_PeriphCLKConfig(&Periph...
可以看出当我们的数据写入6次之后:write_cnt > 5就会进入一个死循环,每过0.5秒输出一个while。 接下来咱们再来验证一下,将SD卡拔出用读卡器插到我们的PC上看我们写入的文件 可以看到我们写入的文件为6行“01 write buff to sd”,这与我们的代码对应 但是大家可以看到我们打开的文件显示出来的结果是乱码的,我们...
__HAL_RCC_TIM6_CLK_ENABLE();/* Get clock configuration */ HAL_RCC_GetClockConfig(&clkconfig...
HAL_Delay的准确性依赖于系统时钟的配置。如果系统时钟配置不正确,可能会影响SysTick定时器的计数频率,从而导致HAL_Delay的延时不准确或卡死。 解决方案:检查系统时钟配置,确保SysTick定时器的计数频率符合预期。可以通过HAL库提供的函数来配置系统时钟,如HAL_RCC_ClockConfig。 查找是否有其他任务或中断导致HAL_Delay无...
l BYPASS Clock Source(旁路时钟源) l Crystal/Ceramic Resonator(外部晶体/陶瓷谐振器) 外部晶体/陶瓷谐振器模式 该模式较为常见,这可以为系统时钟提供较为精确的时钟源。该时钟源是由外部无源晶体与MCU内部时钟驱动电路共同配合形成,有一定的启动时间,精度较高。为了减少时钟输出的失真和缩短启动稳定时间,晶体/陶瓷...
RCC :reset clock control 复位和时钟控制器。用于STM32MP1处理器系统和外设的时钟产生与控制, 在时钟源选择上具备很高的灵活性,RCC时钟输入部分包含2个外部振荡器(HSE、LSE)、3个内部振荡器(HSI、CSI、LSI), 可通过设置不同的时钟源,改进功耗。 STM32MP157的M4内核的系统时钟频率最大可到209Mhz,而无论是内部...