news 2026/7/15 1:47:14

【freertos 讲解 】 第一天【两个灯的闪烁 任务的创建与删除】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【freertos 讲解 】 第一天【两个灯的闪烁 任务的创建与删除】

FREE 字面意思 就是免费的意思

RTOS 也就是操作系统

freertos 就是让任务 同时进行 由于时间太快 所以你不会感觉到 之间的变化

下面我们把板子 也就是 stm32f103c8t6 利用cubemx来转移

第一步 我们debug选择 serial wire 这个是串行调试 简称是SWD

时基 我们选择 TIM2

RCC 我们选择石英(cs)

下面我们来配置 时钟

这里我们选择 freertos

后面我们选择 v1版本

最后 就是 文件项目 命名什么的 这里就不过多讲解了

打开项目

在main.c里面

下面我们讲解 为什么 选择 TIM2 因为freertos 占用了 systick(简写)所以我们选择了TIM2

那么我们嵌入式系统 为什么选择了 V1 是因为 V1 满足了大多数的情况

上面这个图片是 定时器 和信号量 的创建 后面会讲解

这张图片 是互斥量

这是 堆的相关量

这是内核

这是任务 和队列

  • Events: 事件相关的创建

  • Task and Queues: 任务与队列的创建

  • Timers and Semaphores: 定时器和信号量的创建

  • Mutexes: 互斥量的创建

  • FreeRTOS Heap Usage: 用于查看堆使用情况

  • config parameters: 内核参数设置,用户根据自己的实际应用来裁剪定制 FreeRTOS 内核

  • Include parameters: FreeRTOS 部分函数的使能

  • User Constants: 相关宏的定义,可以自建一些常量在工程中使用

  • Advanced settings: 高级设置

我们还要创建一个串口 把图片的代码 放在里面

3 下面我们进行 任务的创建

任务 也就是进程 比如 你上课是一个任务 陪男朋友 也是一个任务 在里面都有while(1)的死循环 创建任务就是 在内存里面 开辟出一个空间

这是 rtos提供的

函数名称函数作用
xTaskCreate()动态方式创建任务
xTaskCreateStatic()静态方式创建任务
vTaskDelete()删除任务
动态方式创建 是系统动态分配任务
静态是我们自己来创建 一般情况是动态创建
上面是理论部分 下面的是 实际操作
我们双击打开
我们在freertos里面 找到 .c里面 在两个 for(,,)等于 while(1)也就是一直循环下去
注意看原理图 这是我的板子原理图 做完以后 两个灯 我们会以不同的频率 闪烁
接下来我会更新任务调度
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 2:03:37

5分钟打造专属VSCode字体主题:在线生成器

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个在线VSCode字体配置生成器,支持实时调整字体类型、大小、行高、连字等参数,提供多种代码类型的实时预览效果。生成配置可一键复制或导出为settings.…

作者头像 李华
网站建设 2026/7/13 16:20:02

AI智能辅导员系统开发:给辅导员搭个“智能帮手”,让辅导不缺位

在校园里,辅导员就是学生的“全能管家”,要管学业、疏心理、帮生活,可现实往往是“学生多、精力少、需求杂”:一个辅导员要管几百个学生,根本没法精准发现每个学生的学习漏洞和情绪变化,想做个性化辅导更是…

作者头像 李华
网站建设 2026/7/8 22:31:08

32、深入理解内存管理:严格别名、数据段管理与匿名映射

深入理解内存管理:严格别名、数据段管理与匿名映射 1. 严格别名规则 在 C 和 C++ 编程中,严格别名规则是一个常被忽视但至关重要的概念。简单来说,严格别名规则要求一个对象只能通过其实际类型、该实际类型的限定版本(如 const 或 volatile)、该实际类型的有符号或无符号…

作者头像 李华
网站建设 2026/7/12 2:16:49

35、Linux信号处理:从基础到高级应用

Linux信号处理:从基础到高级应用 1. 特殊信号介绍 SIGVTALRM :当使用 ITIMER_VIRTUAL 标志创建的定时器到期时, setitimer() 函数会发送此信号。 SIGWINCH :当终端窗口大小改变时,内核会为前台进程组中的所有进程发出该信号。默认情况下,进程会忽略此信号,但如…

作者头像 李华