[其他ST产品] 基于STM32CubeMx配置FreeRtos以及USB虚拟串口步骤详解

[复制链接]
2230|18
 楼主| 抹茶妹妹 发表于 2023-6-29 15:58 | 显示全部楼层 |阅读模式
.打开CubeMx软件,进行芯片选型界面
93179649d399380ad5.png


 楼主| 抹茶妹妹 发表于 2023-6-29 15:58 | 显示全部楼层
搜索你所使用的芯片型号,例如我用的是STM32G4T3VET3
66138649d39b43f70e.png
 楼主| 抹茶妹妹 发表于 2023-6-29 15:59 | 显示全部楼层
根据搜索结果,双击芯片型号,进入配置工程界面

94338649d39d2db99a.png
 楼主| 抹茶妹妹 发表于 2023-6-29 15:59 | 显示全部楼层
.配置SYS 2183649d39e66b734.png
 楼主| 抹茶妹妹 发表于 2023-6-29 15:59 | 显示全部楼层
Debug:推荐选择 Serial Wire (方便使用STLink打断点在线调试)

中间两项默认Disable就好

TimeBase Source:若需要配置FreeRtos则不能选择SysTick,随机选择一个TIM定时器即可,这里我选择TIM1定时器。(解释:裸机的时钟源默认是SysTick,但是开启FreeRtos后,FreeRtos会占用SysTick,用于任务调度。所以需要其他总线提供另外的时钟源)
————————————————
 楼主| 抹茶妹妹 发表于 2023-6-29 16:00 | 显示全部楼层
配置RCC 83377649d3a00d7fbc.png
 楼主| 抹茶妹妹 发表于 2023-6-29 16:00 | 显示全部楼层
一般配置 HSE即可,根据整体设计原理图选择时钟源配置:

可选类型为

(1).  Disable(关闭,不使用外部时钟)

(2).  BYPASS Clock Source(旁路时钟源)

(3).Crystal/Ceramic Resonator(外部晶体/陶瓷谐振器)

外部晶体/陶瓷谐振器模式(该模式较为常见,这可以为系统时钟提供较为精确的时钟源。该时钟源是由外部无源晶体与MCU内部时钟驱动电路共同配合形成,有一定的启动时间,精度较高。为了减少时钟输出的失真和缩短启动稳定时间,晶体/陶瓷谐振器和负载电容必须尽可能地靠近振荡器引脚。负载电容值必须根据所选择的晶体来具体调整。整体上讲,陶瓷晶体和石英晶体的主要区别就在于精度和温度稳定性上。石英晶体比陶瓷晶体精度要高,温度稳定性要好。)

旁路时钟源模式(该模式下必须提供外部时钟。外部时钟信号(50%占空比的方波、正弦波或三角波)必须连到SOC_IN引脚,此时OSC_OUT引脚对外呈高阻态。所谓旁路模式,是指无需上面提到的使用外部晶体时所需的芯片内部时钟驱动组件,直接从外界导入时钟信号。旁路时钟源的典型应用--有源晶振。有源晶振一般是四脚封装,电源、地线、振荡输出和一个控制端【或者悬空端】。相比无源晶体,有源晶振本身就是个完整的振荡器件,只需要供给适当的电源就能输出时钟,无须额外的振荡驱动匹配电路。其时钟输出不依赖于外部器件振荡电路,相对更不容易受外部线路不稳定性的影响。自然其价格往往要高于无源晶体,不过其输出电平幅度往往不能像无源晶体那样随着应用电路的变化而变化。
 楼主| 抹茶妹妹 发表于 2023-6-29 16:00 | 显示全部楼层
配置USB虚拟串口外设(有些芯片可能不支持USB虚拟串口,若不支持虚拟串口配置,则按钮不可点击) 90913649d3a26baf0a.png
 楼主| 抹茶妹妹 发表于 2023-6-29 16:00 | 显示全部楼层
 楼主| 抹茶妹妹 发表于 2023-6-29 16:01 | 显示全部楼层
开启FreeRtos,并选择版本 18995649d3a6bb6f8b.png 根据项目情况自行选择,FreeRtos版本。

V2版本较高,功能较多,大多数情况V1版本够用。
 楼主| 抹茶妹妹 发表于 2023-6-29 16:02 | 显示全部楼层
配置总时钟树。(须注意若要使用USB虚拟串口,则USB虚拟串口需要48MHz的一个工作频率,那么主时钟源频率需要8的倍数即可) 57536649d3a89a04a9.png
 楼主| 抹茶妹妹 发表于 2023-6-29 16:02 | 显示全部楼层
生成 Keil5 工程基本配置 99668649d3aa88406c.png
 楼主| 抹茶妹妹 发表于 2023-6-29 16:03 | 显示全部楼层
.勾选包含一些 **.c文件和一些头文件,便于阅读源码 28680649d3ab654c60.png
 楼主| 抹茶妹妹 发表于 2023-6-29 16:03 | 显示全部楼层
最后点击生成项目工程即可 46614649d3ad6eb66b.png
 楼主| 抹茶妹妹 发表于 2023-6-29 16:03 | 显示全部楼层
.生成完成后,打开项目,运行编译
12268649d3ae704447.png
 楼主| 抹茶妹妹 发表于 2023-6-29 16:04 | 显示全部楼层
小小蚂蚁举千斤 发表于 2023-6-30 15:25 | 显示全部楼层
楼主这个freertos确实比较详细,STM32CUBEMX全部搞定
Undshing 发表于 2023-7-1 22:47 | 显示全部楼层
用cubeMX直接生成很方便了
帛灿灿 发表于 2023-12-30 07:11 | 显示全部楼层

JUnit(用于 Java)、SUnit(用于 Smalltalk)和 CppUnit(用于 C++)等框架提供了丰富的功能集
Bblythe 发表于 2023-12-30 08:14 | 显示全部楼层

通过输入和输出电流环“逃逸”到外面环境中
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

309

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部