STM32CubeMx+Freertos系统开发点亮小灯(一)

STM32 告别裸机开发

一.简介

回想刚接触的单片就是 stc89c51单片机,由于后面的学习,发现51单片机的硬件太少,无法满足需求,所以就接触了STM32单片机,不管是51单片机还是STM32单片机,一开始的学习和使用都是裸机开发,也就是跑的前后台系统

什么是前后台系统

前后台系统是由一个死循环和若干个中断服务程序组成,应用程序是一个无限循环,循环中调用api函数来实现相应的功能,这个大循环就叫做后台系统,中断服务程序用于处理系统的异步事件,也就叫做前台系统,前台是中断级,而后台是任务级

在这里插入图片描述
这样的前后台系统是有弊端的,我给大家举个例子来理解一下,比如一个发射出去的导弹,一个任务程序在进行一半的时候,发生中断需要调整飞行状态,那么该中断程序会在该任务执行下来后进入中断程序,这显然无法做到实时性,就在这及短的时间可以就会飞其它地方去

所以为了解决这个问题,我们是得了解一下实时操作系统,实时操作系统很多比如 RT-Thread,ucos,VxWorks 等,今天给大家介绍的是freertos 应为这个是开源免费的,而且用的面很广所以推荐给大家
在这里插入图片描述

二.STM32CubeMx创建工程

1.准备

当然这里我们可以选择下载Freertos系统的源码进行相应的系统移植,但是这样有的麻烦,我就给大家简绍一个简单的方法,使用STM32CubeMx 软件来直接生成相关的代码

当然想了解Freertos系统源码的可以去官网下载,注意这个是外国的网站加载会比较慢
下载地址:Freertos官网

关于STM32CubMx的下载
下载地址:提取码为 vlpk
如果百度云下载慢也可以在此处下载: STM32CubMx

2.根据自己的开发板创建工程

创建新项目
在这里插入图片描述
选择自己的开发板,收到之后双击下面搜索到的开发板
在这里插入图片描述
在这里插入图片描述

3.基本的配置

SYS
在这里插入图片描述
RCC
在这里插入图片描述
GPIO 直接在右边芯片处鼠标点击配置
在这里插入图片描述
在这里插入图片描述
配置Freertos系统
在这里插入图片描述
在这里插入图片描述
时钟
在这里插入图片描述
在这里插入图片描述
注意
项目的路径,一定要是英文的,否则生成的代码,我们无法正常打开,会报错误

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

三.代码修改

在freertos.c 找到新建的任务对于的函数,添加对于的点灯代码就可以了
在这里插入图片描述

四.DelayUntil周期延时

由于Freertos的系统延时 osDelay()不是很准,所以我们说一下使用周期延时
首先我来 STM32cubMx打开周期延时的配置
在这里插入图片描述
代码中这样配置
在这里插入图片描述
添加下面两句代码就可以了

uint32_t PreviousWakeTime = osKernelSysTick();

osDelayUntil(&PreviousWakeTime,500); //单位为ms

五.总结

这里我们只修改了默认的任务,我们也可以添加任务,然后也可以用点灯的程序来测试(注意配置不同的io口来点亮小灯),最后烧写到开发板的时候我们就可以看到效果了
在这里插入图片描述

  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值