|
您好,我在LPBAM停止函数后调用时钟重新初始化函数(此函数和CUBEMX生成的SystemClock_Config()函数一致,仅仅只是重新写了一遍而已),通过串口输出MSIS和MSIK的寄存器值(通过调用HAL_RCC_GET_MSI_RANGE()和HAL_RCC_GET_MSIK_RANGE()宏),发现在时钟重新初始化函数执行完后,仅MSIS寄存器值正确(1MHz),MSIK寄存器值为0(对应是48MHz),导致部分使用MSIK时钟的外设运行异常!
/**
*/ void sys_api_system_clock_config(uint8_t clockFlag) { uint32_t clockRange; RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; switch(clockFlag) {
} /** Configure the main internal regulator output voltage */ if(HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE4) != HAL_OK) {
} /** Initializes the CPU, AHB and APB buses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_MSI|RCC_OSCILLATORTYPE_MSIK; RCC_OscInitStruct.LSIState = RCC_LSI_ON; RCC_OscInitStruct.MSIState = RCC_MSI_ON; RCC_OscInitStruct.MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT; RCC_OscInitStruct.MSIClockRange = clockRange; RCC_OscInitStruct.LSIDiv = RCC_LSI_DIV1; RCC_OscInitStruct.MSIKClockRange = clockRange; RCC_OscInitStruct.MSIKState = RCC_MSIK_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
} /** Initializes the CPU, AHB and APB buses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2|RCC_CLOCKTYPE_PCLK3; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB3CLKDivider = RCC_HCLK_DIV1; if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) {
} sys_api_clock_get(); } |
关于STM32WB09例子程序中,是否能够不使用串口的问题,引脚另有他用
关于使用STM32CubeIDE for vscode配置freertos的问题
关于STM32WB09使用CUBEMX进行配置的问题
STM32CUbeMX生成的代码里面没有HAL_ADC_Calibration_Start和HAL_ADCEx_Calibration_Start
stm32 motor control workbench生成代码时,找不到STM32CUBEMX
有没有大佬更新了CubeIDE2.0.0,在软件内更新后体积大了一倍
STM32CUBE调试中出现没有 “uwTickPrio() at 0x20000004” 对应的源文件
关于STM32Cubemx 6.15版本生成工程的文件编码的问题
在STM32CUBEIDE中配置完以后直接编译然后再运行出现《没有 “_end() at 0x20000108” 对应的源文件》
STM32CubeMX每次打开后第一次从Board新建工程
微信公众号
手机版
是
RCC_MSIRANGE_1和RCC_MSIKRANGE_1弄错了,两个的宏定义不是一个