STM32CubeMX FreeRTOS软件定时器实验

系统:linux mint xfce 64bit
软件:
1、SW4STM32
2、STM32CubeMX
关于这两个软件在linux的安装教程请看我另一篇博文

Linux/Windows配置stm32免费开发环境详细流程

sw4stm32比较难下载,在此提供百度网盘链接:

链接:https://pan.baidu.com/s/1nxgh1VF 密码:rvzu
3、开发板:STM32F407VET6核心

FreeRTOS软件定时器特点:
(1)是RTOS的一个组件
(2)可以用来扩展STM32的定时器
(3)不是很精确,但可以用作处理循环事件或者延时事件
(4)两种模式,periodic和one pulse

使用STM32CubeMX配置FreeRTOS的话,API是CMSIS_RTOS标准的,也就是进行了封装,下表给出了一些对应关系
这里写图片描述
对于软件定时器的操作请看下图
这里写图片描述

下面介绍一下使用STM32CubeMX配置FreeRTOS软件定时器的例子,使用到了以上几个函数,参考资料在文末。

  1. 配置RCC(外部晶振8M),SYS(systick设置为TIM4),LED灯所在引脚,串口1(用来打印输出信息)

  2. 配置时钟,选择外部晶振,HCLK输入168会自动寻找配置
    这里写图片描述

  3. Configuration 里选择FreeRTOS ,FreeRTOS使能软件定时器
    这里写图片描述

  4. 添加软件定时器,模式选择周期性
    这里写图片描述

  5. 生成sw4stm32工程,记得在代码生成设置里面勾选为每个外设生成独立的.c/.h 文件
    这里写图片描述

  6. 修改main.c文件里的内容,第一步是串口重定向,添加下列代码到相关位置
    这里写图片描述

这里写图片描述
7. 修改freertoc.c内容,主要修改两处,一处是任务函数StartDefaultTask,一处是软件定时器的回调函数Callback01
这里写图片描述
这里写图片描述
(吐槽CSDN,本来想传代码的,无奈CSDN博客转换为代码格式有问题,会和前面的代码结合在一起,造成错乱,对于有强迫症的我来说就只上传图片了)

  1. 烧写程序验证

参考资料:STM32F4-and-FreeRTOS
链接: https://pan.baidu.com/s/1i7d8doT 密码: hiuv

相对应的视频介绍请查看:https://www.bilibili.com/video/av63560586

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值