目录
一、前言
从本文开始,将会逐步介绍FreeRTOS的一些功能,由浅入深。本文将上手通过STM32CUBEMX快速实现FreeRTOS的移植。随后创建点灯任务。
芯片选型:STM32F103C8T6
二、FreeRTOS
如果你想要在单片机程序中同时实现LED闪烁和检测按键,只用最简单的扫描检测,不使用中断等,你会怎么实现呢?
常见的方法是:
if(按键 == 按下)
{
...
}
延时(1000ms)
LED翻转()
这样的话,我们按下按键往往要等待1s才被响应。
还有的小伙伴选择这样写:
if(按键 == 按下)
{
...
}
延时(10ms)
延时计数++
if(延时计数 >= 100)
{
延时计数 = 0
LED翻转()
}
这样可以做到10ms内就能响应按键操作,但是如果我们面对更快的场景呢?比如必须捕捉到时间很短的按键事件,又该如何做?
我们做不到一心二用,CPU也是这样,他们需要执行完一条语句随后转身去执行另外一条。但这样并不符合实时响应的要求,如果能够多线程处理就好了。那么,FreeRTOS可以帮助你。