intmain(void){/* USER CODE BEGIN 1 */__HAL_RCC_HSI_ENABLE();// 启用 HSI__HAL_RCC_SYSCLK_CONFIG(RCC_SYSCLKSOURCE_HSI);// 切换系统时钟为 HSI/* USER CODE END 1 */HAL_Init();SystemClock_Config();// 进行其他初始化} 参考文章
按照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);void MX_GPIO_Init(void);void MX_ADC_Init(void);void MX_I2C1_...
SystemClock_Config里开启HSI 复制 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;RCC_OscInit...
项目中一个是IAP程序,另一个是APP程序,两个程序都是使用STM32CubeIDE生成,当程序跳转到APP中并且执行到函数SystemClock_Config中的时候,在初始化锁相环调用HAL_RCC_OscConfig函数的时候返回HAL_ERROR或者直接卡死在里面。 为什么在IAP中可以初始化通过,但是在APP中却通不过,查阅STM32F4xx参考手册发现这么一段话: ...
SystemClock_Config(); // 初始化以太网接口 MX_ETH_Init(); // 初始化EtherCAT主站 if (ec_init(ETH_IF_NAME)) { Error_Handler(); } // 查找并配置EtherCAT从站 if (ec_config_init(FALSE) > 0) { ec_config_map(&IOmap); // 打印从站信息 ...
Error_Handler(); } sConfigOC.OCMode = TIM_OCMODE_PWM1;//PWM模式1 sConfigOC.Pulse = 0;//占空比 sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;//有效电平为高电平 sConfigOC.OCFastMode = TIM_OCFAST_ENABLE;//快速比较使能 if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_4...
TIM初始化 使用任何外设资源,都需要先考虑使能时钟。与前面的示例一样,在一开始就使用“SystemClock_Config()”配置好了系统时钟和各APB分频。TIM2是挂接在APB1上,这里将APB1二分频,此时TIM2的时钟为2*APB1, 即72MHz。 接着设置TIM2的相关参数,如代码段 25.3.1 所示。 代码段 25.3.1 定时器初始化(driver...
并重新配置HAL_InitTick。 */ SystemClock_Config(); /* Event Recorder - 可用于代码执行时间测量,MDK5.25以上版本才支持,IAR支持。 -默认不开启,如果要使能此选项,务必看V7开发板手册第章 */ #if Enable_Event== 1 /* 初始化EventRecorder并开启 */ EventRecorderInitialize(EventRecordAll, 1U); Event...