本帖最后由 少言寡语 于 2018-8-22 18:19 编辑 型号为STM32F103C8T6 调试的时候 每次执行到该处 点击调试进去进入到下面程序处的时候 会在SYSTICK那个中断函数和这个函数 来回跳很久 最后进入这个while(1)里面 Cube MX 版本用的4.25 KEIL 版本5.25 以下为部分出错代码 void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; /**Initializes the CPU, AHB and APB busses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) { uint32_t tickstart = 0U; /* Check the parameters */ assert_param(RCC_OscInitStruct != NULL); assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); /*------------------------------- HSE Configuration ------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) { /* Check the parameters */ assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState)); /* When the HSE is used as system clock or clock source for PLL in these cases it is not allowed to be disabled */ if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSE) || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE))) { if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) { return HAL_ERROR; } } else { /* Set the new HSE configuration ---------------------------------------*/ __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); /* Check the HSE State */ if(RCC_OscInitStruct->HSEState != RCC_HSE_OFF) { /* Get Start Tick */ tickstart = HAL_GetTick(); /* Wait till HSE is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) { if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) { return HAL_TIMEOUT; } } } |
STM32CubeMX重新生成代码后对上次工程配置的影响?
关于STM32CubeMX配置的USB例程电脑无法识别问题
STM32CubeMX 5.4 TouchGFX
STM32CubeMX与STM32CubeIDE的区别
STM32CubeMX 在哪有下载的??
如何在STM32CubeMX配置中更改LwIP的版本?
STM32CubeMX 如何卸载
关于STM32ETH ETH 使用STM32CubeMX配置不成功
STM32CubeMX无法获取(如图),什么情况
STM32CubeMX教学
评分
查看全部评分
RCC_ClkInitTypeDef RCC_ClkInitStruct; //结构体初始化
RCC_OscInitTypeDef RCC_OscInitStruct; //结构体初始化
__HAL_RCC_PWR_CLK_ENABLE(); //使能电源控制时钟
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);//设置调压器输出电压级别1
这个设置用来设置调压器输出电压级别,以便在器件未以最大频率工作时使性能与功耗实现平衡
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; //时钟源为HSI内部高速时钟
//RCC_OSCILLATORTYPE_HSE 高速外部时钟
RCC_OscInitStruct.HSEState = RCC_HSE_OFF; //关闭HES
RCC_OscInitStruct.HSIState = RCC_HSI_ON; //打开HSI
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; //打开PLL
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;//设置PLL时钟源为HSI
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL4;//PLL VCO输入时钟的倍频系数
RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;//PLL VCO输入时钟的分频系数
RCC_OscInitStruct.HSICalibrationValue = 0x10;//HSI校准调整值
HAL_RCC_OscConfig(&RCC_OscInitStruct); //初始化
RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2); //选中PLL作为系统时钟源并且配置HCLK,PCLK1和PCLK2
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; //设置系统时钟源
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; //AHB分频系数为1
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; //APB1分频系数为1
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; //APB2分频系数为1
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1);//初始化并同时设置FLASH 的延迟周期为1
评分
查看全部评分