STM32CubeMX 可以直观的选择 STM32 微控制器、配置微控制器、自动处理引脚冲突、动态设置确定时钟树、动态确定参数设置的外围和中间件模式和初始化。STM32CubeMX 生成的代码可以在 KEIL、IAR、GCC 等编程软件上面使用。所以简单地说STM32CubeMX 本身就是一个工具软件,我们只要在上面通过图形化配置就可以生成STM32 功能代码工程,这个代码工程已经包括了必要的外设初始化程序,这样节省我们的工作量,把工作重点放在项目逻辑层、应用层的实现。
当然STM32CubeMX 生成的代码也会遇到一些问题:
1.外部低频晶振(LSE)不起振
选择外部低频晶振
RTC选择外部晶振作为时钟源头
配置完成后生成代码RTC正常工作,但是使用示波器发现外部低频晶振未起振(硬件检查时发现,软件工程师认为RTC正常工作,应该是外部未起振之后系统启用了内部晶振(LSI))。
查看STM32CubeMX 生成的配置代码:
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}