cubemx 添加rtc时钟 cubemx使用_cubemx 添加rtc时钟



1 工程配置

1.1 启动界面

cubemx 添加rtc时钟 cubemx使用_引脚_02

  • File:新建、导入、保存、关闭、生成工程等
  • Window:输出窗口开启、设置软件字体;
  • Help:软件帮助文档、检查软件更新、管理MCU固件包等功能。

对于已存在工程可以双击MX图标打开,我们一般选择基于芯片方式新建工程。

1.2 芯片/开发板选择界面

cubemx 添加rtc时钟 cubemx使用_arm_03


直接以芯片型号进行搜索,如STM32F103RC

cubemx 添加rtc时钟 cubemx使用_cubemx 添加rtc时钟_04


双击需要的芯片型号,进入芯片配置主界面。

1.3 配置主界面

cubemx 添加rtc时钟 cubemx使用_arm_05

1.3.1 引脚配置

Pinout&Configuration引脚配置界面:

cubemx 添加rtc时钟 cubemx使用_单片机_06

  • 淡黄色引脚:电源
  • 卡其色引脚:Boot和复位
  • 灰色引脚:GPIO引脚(处于复位状态)
  • 绿色引脚:GPIO引脚(已配置)

查找引脚:

cubemx 添加rtc时钟 cubemx使用_stm32_07


如将PA5引脚配置为推挽输出模式:

cubemx 添加rtc时钟 cubemx使用_stm32_08

1.3.2 外设配置

cubemx 添加rtc时钟 cubemx使用_cubemx 添加rtc时钟_09

  • System Core:用于配置GPIO、时钟源、中断系统以及系统相关的外设
  • Analog:用于配置模/数和数/模转换外设
  • Timers:用于配置定时器和实时时钟外设
  • Connectivity:用于配置l2C、SPI和UART等连接外设
  • Multimedia:用于配置l2S等音频媒体数据传输外设
  • Computing:用于配置CRC校验外设
  • Middleware:用于配置RTOS和GUI等中间件
1.3.2.1 配置时钟模式

cubemx 添加rtc时钟 cubemx使用_cubemx 添加rtc时钟_10


由于内部时钟一般由5%的误差,一般选择旁路时钟或晶振/陶瓷振荡器。

HSE使用晶振振荡器配置示例:

cubemx 添加rtc时钟 cubemx使用_单片机_11

1.3.2.2 配置调试接口

选中SYS后,点击debug选项可以选择仿真下载方式,选择后对应的调试引脚也会发生变换,如选择SW模式:

cubemx 添加rtc时钟 cubemx使用_cubemx 添加rtc时钟_12

1.3.2.3 配置GPIO

cubemx 添加rtc时钟 cubemx使用_单片机_13

  1. 初始状态下的引脚电平
  2. 引脚模式(输入/输出)
  3. 选择上/下拉电阻
  4. 引脚速度(低、中、高)
  5. 引脚名称(不设置默认为GPIOx)

1.3.3 时钟配置

Clock Configuration时钟配置界面:

cubemx 添加rtc时钟 cubemx使用_arm_14

  • 外部低速时钟LSE:32.768kHz
  • 内部低速时钟LSI:40kHz(30~60)
  • 外部高速时钟HSE:4~16MHz
  • 内部高速时钟HSI:8MHz
  • 锁相环PLL:时钟源为HSI/2HSE(可选择倍频系数)
  • 时钟安全系统CSS:使能后,一但HSE失效,自动切换到HSI。
    需要注意:CSS被激活后,会触发NMI中断,如不清楚标志位会一直卡在此中断,通过设置RCC->CIRCSSC位清楚中断标志。通过cubemx使能后会帮我们自动配置:
void NMI_Handler(void)
{
  HAL_RCC_NMI_IRQHandler();
  while (1)
  {
  }
}
void HAL_RCC_NMI_IRQHandler(void)
{
  /* Check RCC CSSF flag  */
  if (__HAL_RCC_GET_IT(RCC_IT_CSS))
  {
    /* RCC Clock Security System interrupt user callback */
    HAL_RCC_CSSCallback();

    /* Clear RCC CSS pending bit */
    __HAL_RCC_CLEAR_IT(RCC_IT_CSS);
  }
}

时钟配置步骤:

cubemx 添加rtc时钟 cubemx使用_stm32_15

  1. 修改HSE为晶振频率8MHz;
  2. 选择HSE作为PLL时钟源;
  3. 选择系统时钟源为PLLCLK;
  4. 输入HCLK频率,并敲回车,软件自动完成配置。

1.3.4 工程配置

Project Manager工程管理界面:

1.3.4.1 工程管理

cubemx 添加rtc时钟 cubemx使用_stm32_16


可以在help中点击以下选项,进入管理当前安装固件包界面:

cubemx 添加rtc时钟 cubemx使用_cubemx 添加rtc时钟_17


cubemx 添加rtc时钟 cubemx使用_引脚_18


注意:CubeMX工程必须在英文路径下。

1.3.4.2 代码生成设置

cubemx 添加rtc时钟 cubemx使用_引脚_19

  • 复制所有库:将整个固件包拷贝到工程目录下
  • 引用参考:不拷贝文件,仅将文件路径添加到工程中(一般不选)
  • Backup...:当重新生成工程时,备份之前生成的文件
  • Keep User Code...:当重新生成工程时,保存用户写的代码(一般勾选)
  • 设置所有引脚默认为模拟模式:可降低单片机功耗
  • 断言语句:勾选后会提升程序的健壮性,但会增加代码量(一般不选)
1.3.4.3 高级设置

cubemx 添加rtc时钟 cubemx使用_单片机_20


点击右上角GENERATE CODE生成工程:

cubemx 添加rtc时钟 cubemx使用_cubemx 添加rtc时钟_21

注意:用户代码必须在USER_xxx_BEGIN和USER_xxx_END里面写,否则下次用cubemx生成时就没有了。

2 工程复制

由于不同任务只需要修改引脚分配和外设配置,因此CubeMX的工程文件不需要每次都重新建立,只需要将之前建立的工程整体复制到新的文件夹即可,步骤如下:

  1. 新建一个文件夹,文件夹的名称和具体的工程应用相关, 如驱动指示灯的任务,就可以将文件夹命名为LED;
  2. 将之前建立的一个工程文件夹中的内容整体复制到新文件夹中,并删除其中的MDK-ARM文件夹;
  3. 修改CubeMX生成的.ioc文件名,和新的工程名称一致,如LED.ioc;
  4. 点击重命名的IOC文件,启动CubeMX软件。按照新任务的要求完成引脚分配和外设配置后,重新生成MDK工程;
  5. 修改MDK工程的相关设置:如仿真器的选择等;
  6. 添加用户代码,并完成程序的编译、下载和调试等后续操作。

3 总结

  • 分析了cubemx软件各界面功能,需要注意工程路径必须为英文路径,同时代码要在user_xx_begin和user_xx_end间填写,否则重新生成工程后就没了。
  • 可以复制之前生成好的cubemx工程,然后将MDK-ARM文件夹删除,按应用功能修改名称后,可以再先前配置的基础上进行修改。

END