STM32
直播中

斯克迪亚

12年用户 415经验值
私信 关注
[问答]

STM32CubeMX FreeRTOS的软件定时器如何实验

STM32CubeMX FreeRTOS的软件定时器如何实验

回帖(1)

袁嫚玲

2021-10-13 11:23:42
系统: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软件定时器的例子,使用到了以上几个函数,参考资料在文末。


  • 配置RCC(外部晶振8M),SYS(systick设置为TIM4),LED灯所在引脚,串口1(用来打印输出信息)
  • 配置时钟,选择外部晶振,HCLK输入168会自动寻找配置





  • 在Configuration 里选择FreeRTOS ,FreeRTOS使能软件定时器





  • 添加软件定时器,模式选择周期性





  • 生成sw4stm32工程,记得在代码生成设置里面勾选为每个外设生成独立的.c/.h 文件





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











7. 修改freertoc.c内容,主要修改两处,一处是任务函数StartDefaultTask,一处是软件定时器的回调函数Callback01










(吐槽CSDN,本来想传代码的,无奈CSDN博客转换为代码格式有问题,会和前面的代码结合在一起,造成错乱,对于有强迫症的我来说就只上传图片了)


  • 烧写程序验证

参考资料:STM32F4-and-FreeRTOS
链接: https://pan.baidu.com/s/1i7d8doT 密码: hiuv
相对应的视频介绍请查看:https://www.bilibili.com/video/av63560586
举报

更多回帖

发帖
×
20
完善资料,
赚取积分