STM32CUBEMX+FreeRTOS开发笔记1-----循环点亮led灯

文章介绍了STM32CUBEMX的安装步骤,包括Java环境配置、软件安装及HAL库的获取。接着,展示了如何使用CUBEMX生成STM32F103RCT6的工程,配置GPIO和时钟,并集成FreeRTOS操作系统。通过编写LED任务函数,展示了在FreeRTOS环境下使用HAL库控制GPIO实现LED闪烁,强调了其相较于标准库的便利性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32CUBE MX的安装

1.首先需要Java的环境,去找一个Java setu.exe文件安装即可。
2.去ST官网下载cubemx最新版,一路next到安装完成后,需要安装HAL库包,才可以使用cubemx进行代码生成。
直接在help里下载相对应的包即可。在这里插入图片描述

3.前面出现小绿点就是下载完成了。
在这里插入图片描述
至此,cubemx安装完成。

代码生成

创建新工程
在这里插入图片描述
选择要用到的单片机型号,我这里使用STM32F103RCT6。
在这里插入图片描述
双击后,选择需要的引脚,进入高亮显示,这里使用PB5引脚当作led的控制io,将PB5设置成output模式,右键label改成led1,如图
在这里插入图片描述
点击sys,配置如图
在这里插入图片描述
gpio设置为高电平
在这里插入图片描述
RCC开启高速外部晶振在这里插入图片描述
在middleware选择freertos操作系统,在task中改变任务名称在这里插入图片描述

时钟配置选择hse外部时钟以及锁相环时钟在这里插入图片描述

将工程文件配置如图
在这里插入图片描述
即可生成工程。

逻辑功能编写

打开工程,打开freertos.c,找到任务函数,使用hal库的gpio写函数,完成逻辑功能编写。与裸机开发不同的是,操作系统可以直接多任务执行,不用在main.c文件里写。

void LED_Task(void const * argument)
{
  /* USER CODE BEGIN LED_Task */
  /* Infinite loop */
  for(;;)
  {
		HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin, GPIO_PIN_RESET);
        osDelay(500);//时基1ms
		HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin, GPIO_PIN_SET);
		osDelay(500);//时基1ms
  }
  /* USER CODE END LED_Task */
}

接入led外设,可以看到led500ms闪烁,实验结束。

在这里插入图片描述
在这里插入图片描述

小结

头一次使用CUBEMX编程HAL库以及FreeRTOS,真是感觉比标准库方便太多,接下来也继续学习操作系统。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值