1,STM32CubeMX生成第一个freeRTOS工程

 1,前言

        本章内容是CubeMX工程配置freeRTOS的demo工程,后续其他本专栏文章中不再提及,默认在本章内容上完成。

        单片机型号:STM32F407

        编程环境    :STM32CubeMX + Keil v5

2,STM32CubeMX新建工程

        双击打开STM32CubeMX软件,选择File(1)->New Project(2)新建工程。也可以直接通过ACCESS TO MCU SELECTOR(3)直接进行新建工程。这两种方法都可以。

        在(1)位置输入自己的芯片型号,在(2)位置双击自己的芯片型号完成芯片选型。

        完成芯片选型后,进入到如下界面。

3,STM32CubeMX的Debug配置

        首先我们来进行Debug的配置,选择System Core->SYS(1)->Debug(2),下拉选择Serial Wire模式,也就是SWD的调试模式。并在下方Timebase Source时基来源(3)中选择TIM14(由于HAL库的默认时基和freeRTOS的默认时基均为系统滴答时钟,可能会有影响,故将HAL库的时基改为定时器)。

4,STM32CubeMX的时钟选择

        接着我们来进行时钟选择的配置,选择System Core->RCC(1),在High Speed Clock(HSE)高速时钟源(2)下拉选择外部时钟Crystal Resonator,在Low Speed Clock(LSE)高速时钟源(3)下拉选择外部时钟Crystal Resonator。

        选择配置完成后,我们可以观察到右侧(4)部分的两组时钟信号引脚变成绿色,说明我们已经成功配置时钟。

5,STM32CubeMX的时钟树配置

        使用外部8MHz高速晶振(1),将系统时钟(SYSCLK)配置为最高频率168MHz,PCLK1配置为最高频率42MHz,PCLK2配置为最高频率84MHz。

        在上方点击Clock Configuration,然后按下图进行配置,本文用的是STM32F407单片机,所以系统最快时钟为168MHz,如果是STM32F103单片机最快系统时钟为72MHz。

6,STM32CubeMX配置串口1

          在Connectivity(1)中选择USART1(2)进行配置串口1,在Mode中下拉选择异步通信方式Asynchronous(3),做好后我们可以看到RX和TX两个引脚已经被配置完毕。

        生成代码后,我们需要在main.c中添加fpuc的重定向和添加#include“stdio.h”头文件。下方红色框中即为所添加内容。

7,STM32CubeMX配置freeRTOS工程

        配置freeRTOS工程。点击Middieware中的FREERTOS(1),在Interface中选择CMSIS_V2(2)这里的版本2是兼容版本1的,下方Configuration区域(3)为配置区这里我们使用默认。

8,STM32CubeMX生成项目工程

        配置完成后,开始生成代码。点击上方Project Manager,在Project中输入项目工程名称(1),选择文件地址(2),选择编写代码的IDE(3)。

        选择Code Generator(1),如图配置(2)仅复制所需文件,(3)生成.c/.h文件。完成后点击GENERATE CODE(4)生成工程文件。

        生成后在文件名/MDK-ARM文件夹中使用Keil5打开工程,进行工程编译(1),编译后0错误0警告(2),至此配置完成。

9,烧录与测试

        在main.c中添加以下内容。

        在freertos.c中添加以下内容。

点击烧录下载,打开串口助手连接串口。复位单片机后可以看到实验结果如下。试验成功!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/442828.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新增数据集 SDK、“关系抽取”文本标注、优化模型监控和管理|ModelWhale 版本更新

ModelWhale 带来了新一轮的版本更新,期待为大家带来更优质的使用体验。 本次更新中,ModelWhale 主要进行了以下功能迭代: 数据管理:新增 mw_python_sdk 支持通过查看、下载、制作、更新数据集 文本标注:新增“关系抽取…

最新版本SkyWalking【10.1.0】部署

这里写目录标题 前言前置条件启动Skywalking下载解压启动说明 集成Skywalking Agent下载Agent在IDEA中添加agent启动应用并访问SpringBoot接口 说明 前言 基于当前最新版10.1.0搭建skywalking 前置条件 装有JDK11版本的环境了解SpringBoot相关知识 启动Skywalking 下载 地…

停车位识别数据集 图片数量12416张YOLO,xml和txt标签都有; 2类类别:space-empty,space-occupied;

YOLO停车位识别 图片数量12416张,xml和txt标签都有; 2类类别:space-empty,space-occupied; 用于yolo,Python,目标检测,机器学习,人工智能,深度学习&#xff0…

WordPress修改固定链接后301的重定向方法

网站改版实际上是很忌讳的,尤其是针对已被搜索引擎收录的网站,新站不用考虑这些问题,而已经收录的网站网页在不遵守搜索引擎规则的前提下,是会被降权,关键词排名下滑、流量IP会被剥夺、收录会减少 、业务成交量会急剧下…

Java—逻辑控制与输入输出

各位看官:如果您觉得这篇文章对您有帮助的话 欢迎您分享给更多人哦 感谢大家的点赞收藏评论,感谢您的支持!!! 一.顺序结构: 我每天起床,躺在床上玩手机,然后吃中午饭,睡…

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(2)Keras

文章目录 前言一、Keras二、使用Kears 估计回归问题的神经网络1. 载入、处理数据2. 数据预处理:归一化3. 设定一系列随机数种子4. 定义了一个简单的深度神经网络5. 训练模型6. 查看训练结果7. 使用最优轮数(index1)重新估计 此神经网络模型8.…

Authentication Lab | Timing Attacks

关注这个靶场的其它相关笔记:Authentication Lab —— 靶场笔记合集-CSDN博客 0x01:Timing Attacks 前情提要 由于软件系统对不同输入处理时间的差异,可能会导致系统存在侧信道攻击的隐患。比如,如果输入的是无效的用户名&#x…

通信工程学习:什么是三网融合

三网融合 三网融合,又称“三网合一”,是指电信网、广播电视网、互联网在高层业务应用上的深度融合。这一概念在近年来随着信息技术的快速发展而逐渐受到重视,并成为推动信息化社会建设的重要力量。以下是对三网融合的详细解释: 一…

LeetCode题练习与总结:生命游戏--289

一、题目描述 根据 百度百科 , 生命游戏 ,简称为 生命 ,是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态: 1 即…

HTML图形

HTML图形 1. HTML5 Canvas2.HTML5 内联 SVG3.HTML 5 Canvas vs. SVG 1. HTML5 Canvas HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。画布是一个矩形区域,您可以控制其每一像素。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。 1、创建…

想要成为独立游戏作者 :通关!游戏设计之道 1-1

1-1代表该书《通关!游戏设计之道》第一章的第一篇文章 游戏是什么? 小时候我是先有卡带游戏机后接触的平板电脑和手机,起初我认为游戏是带给人快乐的,我就喜欢游戏里面各种有趣的玩法,各种友爱的画风,尤其…

哈夫曼编码

文章目录 🍊自我介绍🍊哈夫曼编解码🍊哈夫曼树介绍🍊哈夫曼编码思想 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞关注评论收藏(一键四连)哦~ 🍊自我介绍 Hello,大家…

AI 正在颠覆编程,程序员的出路在哪里?

AI 正在颠覆编程,程序员的出路在哪里? AI 的飞速发展,让程序员群体感受到了前所未有的压力。我们的工作,真的会被 AI 取代吗?未来的职业发展方向究竟在哪?我们应该害怕,还是应该拥抱这种变化&a…

Spring Boot ⽇志

目录 1.⽇志使⽤ 2.⽇志级别 3.⽇志配置 3.1配置⽇志级别 3.2⽇志持久化 3.3配置⽇志⽂件分割 4.更简单的⽇志输出 1.⽇志使⽤ 在使用之前我们先来了解一下为什么要使用? ⽇志的⽤途 1.系统监控 我们可以通过⽇志记录这个系统的运⾏状态,对数…

The legacy JS API is deprecated and will be removed in Dart Sass 2.0

The legacy JS API is deprecated and will be removed in Dart Sass 2.0 更新了sass版本后,启动项目控制台一直在报错,影响开发效率,强迫症表示忍受不了。 字面意思是:Sass在2.0版本将会移除legacy JS API,所以现在使…

Git的安装配置

目录 一、git和svn的区别是什么 二、下载Git 三、安装 四、使用 一、git和svn的区别是什么 1、git是分布式的,svn是集中的式的 2、git存储数据时是按元数据的方式存储,而svn是按文件的方式存储 3、git分支和svn的分支不一样 4、git没有全局版本号…

【Sceneform-EQR】(手势控制器实现)通过手势事件实现在AR/VR等三维场景中的控制模型旋转、平移与缩放

在Sceneform-EQR中实现旋转平移缩放手势 实现在AR/VR等三维场景,通过手势控制模型节点的缩放、平移和旋转。 实现思路 实现模型旋转 Sceneform-EQR(filament\opengl)中采用右手坐标系。通过欧拉角进行旋转采用Z->Y->X的顺序,在这里,…

iOS swift5 苹果app审核被拒 1.4.1

文章目录 1.被拒2. 官网1.4.1的规定3.如何解决参考博客 1.被拒 准则1.4.1-安全-人身伤害 该应用程序连接到外部医疗硬件,以提供医疗服务。然而,为了遵守准则1.4.1,您必须: -提供来自适当监管机构的文件,证明应用程序…

vim 操作

vim编辑器的有三种工作模式:命令模式、插入模式和底行命令模式 打开进入命令模式: 由命令模式到输入模式:i:在光标前插;a:在光标后插;o:在下一行插 由输入模式进入命令模式:esc 由命令模式进入底行命令…

LabVIEW激光诱导击穿光谱识别与分析系统

LabVIEW激光诱导击穿光谱(LIBS)分析系统利用高能量脉冲激光产生高温等离子体,通过分析等离子体发出的光谱来定性分析样品中的元素种类。该系统的开发集成了软件与硬件的设计,实现了自动识别和定性分析功能,适用于环境监…