freeRTOS入门学习-基于STM32F103C8T6最小系统板-使用cubeMX创建一个新的工程

一、准备工作

首先打开我们的cubeMX软件,搜索我们对应的MCU,我这里使用的是c8t6最小系统板

接下来双击我们需要的芯片型号

二、System Core配置

进入界面后我们先进行时钟的配置

将HSE配置为晶振

然后我们将SYS配置成为serial wire,

并且基准时钟选择为TIM4

做如上配置的目的是:使用serial wire可以节省出大量的引脚,使用TIM4是因为其他的TIM1、2、3用在其他元件上边

时钟配置为72MHz最高频率

ok,那么到这里基础的配置先告一段落。

三、配置FreeRTOS

下滑找到FreeRTOS,默认是disable,需要配置CMSIS_V2

打开TASK可以发现启用FreeRTOS之后会创建一个任务,可以进行修改编辑,先保留默认即可

最后对工程进行命名,以及使用的编译器进行选择

将这个勾选上,每个外设的代码分为.c和.h

其余的保留默认,即可进行生成

四、打开keil5的文件

点击魔术棒,将这个进行勾选

将这个 取消 勾选

五、添加点灯的GPIO配置

回到cubeMX,对板载LED灯PC13进行配置

六、添加驱动文件

打开keil编译器,添加一个新的group,我命名为hardware

里边添加驱动文件(韦东山老师资料包中的)如下

七、编写rtos内容

先打开FreeRTOS.c文件,进行刚刚添加的驱动文件的头文件添加,

在这个部分加入LED测试的函数

编译烧录后非常完美的运行了,板载的LED灯进行闪烁。

八、使用OLED

重新打开cubeMX,

选择IIC1之后发现对应 的引脚是PB6、PB7

选择之后之间生成代码即可。

打开keil之后还得重复之前一个操作,将Reset自动运行打开和pack的取消勾选。每次重新生成都会变回原来的样子,需要重新配置

添加驱动文件,切记不要把字库的.c文件加进来,会报错:01_FreeRTOS_my\01_FreeRTOS_my.axf: Error: L6200E: Symbol ascii_font multiply defined (by ascii_font.o and driver_oled.o).

原因是重复包含了,这个.c文件已经在其他头文件里边包含了

接下来烧录编译,正确接线PB6、7之后就可以显示测试函数的内容了

到此,一个工程已经创建成功

相关推荐
我命由我123455 分钟前
ReAct 循环
学习·ai·产品运营·学习方法·ai编程·ai写作·产品
HRTOS7 分钟前
HRTOS 4.0 实测:时间片模式与调度位模式的任务切换性能对比
经验分享·单片机·嵌入式硬件·51单片机
for_ever_love__8 分钟前
LangGraph Checkpointer:持久化、断点续跑与多轮记忆
服务器·数据库·学习·持久化·langgraph·checkpointer·断点续跑
深圳市恒锐丰科技杨生10 分钟前
LR048N10SM3 / LR046N10SM2 N 沟道 SGT‑MOSFET|Long‑Tek 龙夏电子
嵌入式硬件·硬件工程
独孤九剑打醒他12 分钟前
【原创开源·2.0 版】太阳能水闭环氢能源汽车:动态制氢、动能回收与副产物商业闭环
前端·嵌入式硬件·汽车·硬件工程·能源
学电子她就能回来吗16 分钟前
LeetCode Hot 100|滑动窗口专题零基础学习笔记
笔记·学习·leetcode
我先去打把游戏先27 分钟前
Git-Rebase使用指南-从原理到实战
服务器·git·嵌入式硬件·物联网·ubuntu
小雪崩33 分钟前
嵌入式学习 day68:驱动——SPI总线
学习
木子n139 分钟前
车载以太网与SOME/IP服务化通信实战-03.事件通知与丢包语义:三类丢包模型、AoI时效账与缺口检测阈值
嵌入式硬件·网络协议·车载系统·车载以太网·some/ip
一个风轻云淡39 分钟前
扒开系统调用的三层皮:从 getpid 到手写 int 0x80
stm32·单片机·嵌入式硬件