- 1
- 0
- 约1.13万字
- 约 84页
- 2017-02-12 发布于重庆
- 举报
09第九章STM32处理器综合应用
第九章 STM32 处理器综合应用 9.1 RTX_Blinky 9.2 MP3_Player 9.1 RTX_Blinky 本节将介绍一个综合应用 RTX、ADC、GPIO、LCD 的实例 RTX_Blinky。 STM32 处理器根据电位器的电压值来控制四相八拍步进电机的旋转速度,这里以四个 LED灯闪烁来表示处理器给步进电机的输入,也就是通过电位器来控制四个 LED 灯循环闪烁的速度,同时电位器的电压值在 LCD 上显示。 作用 其一是如何使用实时库 RTX 来实现多任务的应用程序; 其二是如何使用 MDK、ULink2 和 STM32 处理器的 SW 端口来进行实时跟踪分析调试 9.1.1 硬件电路 9.1.2 RTX 内核 RTX 内核是一个非常小的 RTOS,仅有 50 多个函数,没有内存管理、文件管理等复杂功能,但可以实现多任务的管理和调度。 RTX 是用标准C 语言编写,由RealView 编译器编译成的,可轻松实现任务函数的声明,而不需要复杂的堆栈以及变量帧的配置。 利用 RTX 核编写实时应用程序仅需要在源程序中包含一个连接RTX 实时库的头文件“RTX.h”即可。 RTX常用函数 os_sys_init (void (*task)(void) ) 该函数用于初始化并启动RTX 核,在核被初始化后,将运行参数 task 所指向的任务函数。 该函数一定是放在 C 语言的 main()函数中。 RTX常用函数 OS_TID os_tsk_create (void (*task)(void),U8 priority ) 该函数创建由参数任务函数指针*task 所指定的任务,并将任务添加准备好的队列中,新的任务会被动态分配一个任务识别号(TID)。 参数 priority 用于指定任务的优先级,默认的任务优先权是1。0 为闲置的任务保留的,如果指定一个任务的优先权为 0,则自动用 1 代替,值 255 也保留。 RTX常用函数 void os_evt_set (U16 event_flags, OS_TID task ); 该函数为参数 task 指定的任务设置标志,函数仅对参数 event_flags 中相应位为 1 的事件设置标志。 void os_tsk_delete_self (void) 该函数停止并删除当前任务,程序将继续执行下一个就绪队列中最高优先权的任务。 RTX常用函数 void os_dly_wait (U16 delay_time ) 该函数用于暂停调用任务。参数 delay_time 具体规定停顿的时间长度,它由system_ticks衡量,delay_time 可以设置为从 1 至0xfffe 的任何值。 RTX常用函数 OS_RESULT os_evt_wait_and (U16 wait_flags, U16 timeout ) 该函数用于等待在 wait_flags 中被指定发生的所有事件。函数等待参数 wait_flags 中相应的位被设定为 1 的事件,最多可达16 个不同的事件。 timeout 用于设置预约时间, 预约时间之后即使没有一个事件发生,函数必须返回。timeout 可以为除了 0xFFFF 之外的值,如果timeout 设置为 0xFFFF,则表示一个不确定的预约时间。预约时间由系统时间衡量。 9.1.3 软件程序设计 为了使用 RTX 以多任务的方式驱动LED 灯的闪烁,设置 5 个任务 OS_TID t_phaseA、OS_TID t_phaseB、OS_TID t_phaseC、OS_TID t_phaseD 和 OS_TID t_lcd。 其中前 4 个任务的作用是点亮某个 LED 灯,延迟一段时间,然后通过设置标志触发另一个任务执行,再延迟一段时间之后,熄灭 LED 灯,等待下一次事件标志的到来;通过这四个任务的循环触发可以实现四个 LED 灯循环闪烁,其延迟时间由ADC 转换值决定。 软件程序设计 OS_TID t_lcd 用于将ADC 转换值显示在 LCD 上,按固定时间间隔不断更新。 除了以上 5 个任务之外,还有 init 任务和 idle 任务,init 任务用于创建以上 5 个任务,该任务在完成之后自行删除;idle 任务无需创建,永远存在,当系统无其他任务时执行该任务。 源文件简介 Blinky.c 该源文件用于创建多个任务,并多个任务之间的触发。 STM32_Init.c 该源文件用于初始化 STM32 处理器各个外围接口设备。 源文件简介 Setup.c 该文件用于设置 ADC 和 LED 相关的端口和时钟。 RTX_Config.c 该文件用于配置 RTX 的参数,例如同时运行的
您可能关注的文档
最近下载
- 【基恩士】IG 系列 用户手册 (简体中文).pdf VIP
- 安徽财经大学《数值分析》2019-2020学年期末试卷.pdf VIP
- 《律师事务所退伙协议》.docx VIP
- SHS 01037—2019 球形储罐维护检修规程.docx VIP
- 文本教案半潜平台se23dec2012workshop binder.pdf VIP
- 《碳达峰碳中和政策法规汇编(2024年9月刊)》.pdf VIP
- 探索式软件测试方法在敏捷开发中的应用研究.docx VIP
- 中国行业标准 YY/T 1226-2022人乳头瘤病毒核酸(分型)检测试剂盒.pdf
- 延安市各区县地表水系图.pdf VIP
- 2025-2026学年一年级数学上册乐考非纸笔测试题(一)(人教版·新教材).docx VIP
原创力文档

文档评论(0)