目标
- 移植 最新版本 FreeRTOS 到 nucleo-L476RG 开发板,MCU 是
STM32L476RGT6
开发环境
- Win10 64位
- Keil MDK 5.36
- STM32CubeMX 6.11.1
移植准备
- 使用
STM32CubeMX 6.11.1
快速搭建nucleo-L476RG
开发板 的 Keil MDK5 的裸机工程 - 打开 STM32CubeMX, 在 STM32CubeMX 搜索
nucleo-L476RG
,会找到这个开发板,双击即可创建开发板的配置
- 可以简单查看一下配置,基本可以保持不变。
- 在 【Project Manager】项目管理的页面,选择 Keil MDK5 工程
- 点击 【GENERATE CODE】生成 Keil MDK5 的工程
编译与下载
- 打开生成的 Keil MDK5 工程
stm32l475_freertos\MDK-ARM\stm32l475_freertos.uvprojx
,点击编译,即可正常编译通过
- 点击下载,也可以点击【调试】按钮,进入调试模式,确认程序下载后是否正常工作
- 默认 工程初始化后,进入了
while (1)
死循环,点击 【停止】调试的按钮,如果当前运行一直在while (1)
死循环中,基本确认程序正常运行,而没有进入 异常,如hardfault
等。
裸机 LED 闪烁
- 通过原理图,确认 LED 的引脚是:
PA5
,并且工程默认已经配置了
#define LD2_Pin GPIO_PIN_5
#define LD2_GPIO_Port GPIOA
- 测试代码: main 函数
while (1)
循环中增加如下的 LED 状态切换的代码 - 默认可以使用 HAL_Delay 进行延时(单位 毫秒),底层基于 systick 定时器
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);
HAL_Delay(500);
}
- 编译下载后, 开发板 LED 闪烁起来,可见使用 ST 的代码生成工具
STM32CubeMX
,可以大大降低 Keil MDK5 基本工程的搭建难度,提高开发的效率
小结
- 本篇主要记录一下
nucleo-L476RG
开发板使用STM32CubeMX
快速搭建 Keil MDK5 工程的方法,有了基本的裸机工程,验证开发板程序编译、下载、运行情况 - 后面开始记录 FreeRTOS 的移植(手动移植)方法,了解 RTOS 的运行