【RTOS】快速体验FreeRTOS所有常用API(1)工程创建

这篇具有很好参考价值的文章主要介绍了【RTOS】快速体验FreeRTOS所有常用API(1)工程创建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

快速体验FreeRTOS所有常用API(1)工程创建
快速体验FreeRTOS所有常用API(2)任务管理
快速体验FreeRTOS所有常用API(3)同步与互斥
快速体验FreeRTOS所有常用API(4)队列
快速体验FreeRTOS所有常用API(5)信号量、互斥量
快速体验FreeRTOS所有常用API(6)事件组
快速体验FreeRTOS所有常用API(7)任务通知
快速体验FreeRTOS所有常用API(8)软件定时器
快速体验FreeRTOS所有常用API(9)中断管理
快速体验FreeRTOS所有常用API(10)资源管理
快速体验FreeRTOS所有常用API(11)打印空闲栈、CPU占用比

本工程皆在快速体验FreeRTOS所有常用API,不深究概念。

硬件:STM32F103C8T6最小系统、OLED

软件:FreeRTOS、OLED驱动、UART驱动

工具:STM32CubeMX、Keil、串口助手

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

一、工程创建

本部分代码下载链接:

https://wwzr.lanzout.com/iyUvV1l75bja 密码:dqbd

建议直接使用该工程进行后续学习。

该代码尽量做到最简,不添加多余的、不规范的代码。

1.1 新建工程

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

1.2 配置RCC

选择外部时钟源。

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

设置外部晶振输入值,我这块板子是8M。

然后手动输入最大时钟频率,然后回车让他自动配置时钟树。我这块板子是72M。

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

1.3 配置SYS

另外,本实验使用了FreeRTOS,FreeRTOS的时基使用的是Systick,而STM32CubeMX中默认的HAL库时基也是Systick,为了避免可能的冲突,最好将HAL库的时基换做其它的硬件定时器:

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

1.4 配置外设

这次用的外设有:LED、串口调试、OLED显示。

1)配置 LED PC13

配置板子LED引脚,推挽输出模式。我这块板子是 PC13。

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

2)配置 串口 UART1

使用串口1,波特率默认,异步通信。

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

3)配置 OLED I2C1

OLED屏幕使用I2C1通道,I2C1使用PB6、PB7作为SCL、SDA引脚,配置如下:

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

1.5 配置FreeRTOS

STM32CubeMX已经将FreeRTOS集成到工具中,并且将RTOS的接口进行了封装CMSIS-RTOS V1/V2,相较之于V1版本的CMSIS-RTOS API,V2版本的API的兼容性更高,为了将来的开发和移 植,建议开发者使用V2版本的API:

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

选择CMSIS V2接口后,还要进一步配置FreeRTOS的参数和功能。

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

FreeRTOS的参数包括时基频率、任务堆栈大小、是否使能互斥锁等等,需要开发者根据自己对FreeRTOS的了解以及项目开发的需求,来定制参数。

使用默认参数不需要修改

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

使用STM32CubeMX,可以手工添加任务、队列、信号量、互斥锁、定时器等等。但是本课程不想严重依赖STM32CubeMX,所以不会使用STM32CubeMX来添加这些对象,而是手写代码来使用这些对象。

使用STM32CubeMX时,有一个默认任务,此任务无法删除,只能修改其名称和函数类型,如下图所示:

使用默认参数不需要修改

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

1.6 工程设置

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

1.7 生成代码

点击生成代码

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

打开keil工程

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

1.8 keil设置下载&复位

选择下载器类型,我用的是DAP。点击后面的Setting。

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

进入后勾选自动复位,表现为每次下载程序后单片机自动复位运行程序。

设置完点击OK。

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

因为要使用printf,勾选:

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32

1.9 添加用户代码

STM32CubeMX只是帮我们初始化了所配置的硬件模块,你要实现什么功能,需要自己添加代码。

添加MCU-F103等用户自己的代码,包含LED、UART、OLED驱动等。

修改 默认任务 的代码为下图,用于测试LED、UART、OLED程序。

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建,嵌入式,FreeRTOS,RTOS,STM32文章来源地址https://www.toymoban.com/news/detail-809607.html

到了这里,关于【RTOS】快速体验FreeRTOS所有常用API(1)工程创建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • freertos学习之路1-裸机和rtos的区别

    由于工作需要,需要开始学习freertos的相关知识,本专题主要记录freertos的相关内容 参考: https://www.bilibili.com/video/BV19g411p7UT 正点原子视频 试想一种场景,我们正在打游戏,但女朋友在你打游戏的过程中给你发送消息,你需要回复消息 1.1 裸机处理方式 玩过51或者stm32的裸机编

    2023年04月17日
    浏览(42)
  • 【RTOS学习】FreeRTOS中的链表 | 堆的管理

    🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言: 你只管努力,剩下的交给时间! 链表是FreeRTOS的核心结构,它让系统的功能正常运行,本喵下面来解释一下FreeRTOS中的链表结构以及操作。 如上图所示是FreeRTOS源码中的链表的定义 List_t ,这是一个链表头,重要的成员

    2024年02月04日
    浏览(43)
  • [RTOS]rtthread,freeRTOS,uCOS等系统简单对比

    在上一篇《嵌入式操作系统浅谈》中,大概介绍了我自己再工作中使用到的如rt-thread,freeRTOS,uCOS,luatos等系统,在这一篇文章中,我简单说一下这些操作系统一些特点,还有就是我们平时的工作中什么场景下用哪种系统比较好。 csdn里面很多大神对上面的一些系统都做过了

    2023年04月15日
    浏览(29)
  • 鸿鹄工程项目管理系统源码:Spring Boot带来的快速开发与部署体验

    随着企业规模的不断扩大和业务的快速发展,传统的工程项目管理方式已经无法满足现代企业的需求。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,企业需要借助先进的数字化技术进行转型。本文将介绍一款采用Spring Cloud+Spring Boot+Mybatis技术框架的工

    2024年02月03日
    浏览(45)
  • 快速掌握STM32工程创建

    STM32 工程创建-- 使用Keil uVision5 软件 晓理紫 STM32F10x_StdPeriph_Lib_V3.5.0 VX 搜索“晓丽紫”关注回复STM32F10x即可下载 STM32Study STM32Study/study1 存放本次工程目录 5.1 、启动文件 启动文件位于库函数 STM32F10x_StdPeriph_Lib_V3.5.0STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xst

    2024年02月09日
    浏览(35)
  • Devin内测注册全攻略:一文带你快速体验最新AI软件工程师技术 ️

    博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接 : 🔗 精选专栏 : 《面试题大全》 — 面试准备的宝典! 《IDEA开发秘籍》 — 提升你的IDEA技能! 《100天精通鸿蒙》 — 从Web/安卓到鸿蒙大师! 《100天精通Golang(基础入门篇)》 — 踏入

    2024年03月16日
    浏览(124)
  • C++/MFC工程[1]——创建新项目及常用类介绍

    1、选择“MFC应用”,点击“下一步” 2、 配置项目 默认项目名称如下,此处使用默认名。 点击“创建”,应用程序类型选择“单个文档”,项目样式选择“MFC standard”。 注: 本文以单文档为例   点击“完成”。 3、运行新项目 直接点击“本地调试器”,发现此时已经是一

    2024年02月04日
    浏览(53)
  • 痞子衡嵌入式:使用恩智浦GUI Guider快速创建全新LCD屏示例工程的步骤

    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是 使用恩智浦GUI Guider快速创建全新LCD屏示例工程的步骤 。 在痞子衡旧文 《在i.MXRT1170上快速点亮一款全新LCD屏的方法与步骤》 里,痞子衡介绍了在官方 SDK 裸机驱动 elcdif 示例工程基础上做修改以支持一

    2024年03月13日
    浏览(49)
  • SpringBoot3.0新特性:1、spring.factories文件废弃,自动配置包位置变化 2、Spring Native 快速体验 3、jakata api迁移 3、三方库的支持

    有自己写过starter包的友友们一定知道,一定用/META-INF/spring.factories文件定义发现自动配置,但是在springboot 2.7,这个文件就被弃用了,在springboot 3.0 就被彻底移除了。 比如之前定义的/META-INF/spring.factories文件: 而现在 这个/META-INF/spring.factories并不是不存在了,只是在3.0之后 外

    2024年02月10日
    浏览(47)
  • FreeRTOS快速入门-初探FreeRTOS

    首发,公众号【 一起学嵌入式 】 对于 RTOS 入门系列文章,已经更新完一款(RT-Thread): 助你快速入门 RT-Thread 这个系列的文章结合 RT-Thread,介绍过 RTOS 相关的核心知识。 接下来,开始另外一款 RTOS – FreeRTOS 入门系列,希望能够帮助初学者快速掌握 FreeRTOS,帮助老手回顾基

    2024年02月05日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包