IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32CubeMX配置生成FreeRTOS项目 -> 正文阅读

[嵌入式]STM32CubeMX配置生成FreeRTOS项目

1. 安装STM32CubeMX软件

ST公司现在出了一套封装更好的HAL库,并且搭配STM32CubeMX软件自动生成初始化外设相关的代码,再也不用自己去写初始化相关得代码了,非常方便。

1.1 下载安装

STM32CubeMX是ST公司的免费软件,我们去ST的官网:

https://www.st.com/en/development-tools/stm32cubemx.html

找到下面获取软件的界面,下载相应版本即可
在这里插入图片描述
注意:STM32CubeMX是JAVA写的,所以需要安装JAVA的运行环境,怎么安装JAVA运行环境自己网上找一下。

1.2 安装要用到的芯片软件包

安装完CubeMX后,打开界面如下,然后点击Install/Remove,如下:

在这里插入图片描述

我们先安装要用到的一些芯片软件包,因为我使用的事STM32F407ZGT6芯片,所以我选择的是F4软件包。如下:
在这里插入图片描述

2. 配置FreeRTOS项目

2.1 创建工程

在这里插入图片描述

然后进入到选择芯片型号,这里我用的是STM32F407ZGT6芯片。

在这里插入图片描述

2.2 配置SYS

在这里插入图片描述

2.3 配置RCC

我们使能外部晶振。注意:如果是没有使用到外部低速晶振的话,就不要使能外部低速晶振了,否则程序上电会死在时钟设置相关得代码那里。
在这里插入图片描述

2.4 配置系统运行时钟

我们配置玩RCC外设之后,就可以去配置系统的各个外设运行的时钟了。如下图,外部晶振我的的开发板是8MHz,所以输入晶振要选中8。其他的配置其实按照软件的提示进行设置即可,如果配置的运行频率超过了芯片的最大运行频率,软件会高亮提示的。

在这里插入图片描述

2.5 配置UART1串口作为调试代码

在右侧Connectivity栏,然后选中USART1,然后配置如下界面:
在这里插入图片描述
因为我们使用中断方式接收串口数据,所以还需要使能USATR1的中断,和配置中断优先级:
在这里插入图片描述

2.6 配置一个LED引脚的GPIO

我们配置一个控制LED亮灭的GPIO引脚,用于测试程序。我的开发板上的LED引脚是PE3,所以我配置这个引脚。

在这里插入图片描述

2.7 使能FreeRTOS组件

CubeMX可以直接使能FreeRTOS组件,这里我选择V1版本,V1、V2具体有什么区别我也不是很了解。

然后其他的FreeRTOS相关的配置参数,就全部默认配置就行,后面需要的时候再改。

在这里插入图片描述

3. 生成代码

生成代码前,先配置下相关的 Project Manager 选项。

在这里插入图片描述
配置代码的文件组织结构,把下面的选项勾上,这样生成的每一个外设的代码都会有对应的 .c/.h 文件,不勾上会把所有代码都添加到main文件上。然后就点击右上角生成代码即可。
在这里插入图片描述
说明:CubeMX生成的FreeRTOS代码,他把FreeRTOS的所有操作又封装了一遍,在文件cmsis_os.c文件中。我们使用了ST封装的FreeRTOS接口的话,就算我们以后的代码使用了不同版本的FreeRTOS,那么用户代码也不用修改。

4. 测试生成的工程代码

生成代码后,在freertos.c文件中,CubeMX会生成一个默认的任务,我们去该任务的任务函数添加串口打印和LED亮灭的代码,如下:

void StartDefaultTask(void const * argument)
{
    /* USER CODE BEGIN StartDefaultTask */
    uint8_t str[] = "hello world";
    /* Infinite loop */
    for(;;)
    {
        HAL_UART_Transmit(&huart1, str, sizeof(str), 500);	// 串口1输出一串字符
        HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_3);				// LED灯循环亮灭
        osDelay(1000);
    }
    /* USER CODE END StartDefaultTask */
}

添加完代码后,编译下载到开发板。

然后打开串口调试工具,可以看到串口正常输出下面的打印信息,说明使用CubeMX创建的FreeRTOS工程没问题。
在这里插入图片描述
到此配置创建FreeRTOS工程项目完成。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 11:00:44  更:2022-08-06 11:02:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:38:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码