首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

一种基于μC/OS-III及STM32的多功能控制器

一种基于μC/OS-III及STM32的多功能控制器

关键字:μC/OS-III                                                                                               STM32                                                                                               遥控面板                                                                                               485总线                                                                                               多功能控制器                                                                                                                 
                  电动轨道车控制系统一般分为多个子系统,子系统受一个主控器控制。这样的结构设计繁琐,编程复杂。采用μC/OS-III操作系统、STM32F103RC微控制器、12864液晶屏、PVC按键、无线串口模块、锂电池等实现具有人机界面、无线串口功能的总线主控器。该控制器具有人机界面、轨道车主控器、遥控接收器、遥控面板等多种功能,并且能在不同项目中使用。μC/OS-III从官网上下载,文件名为Micrium_uC-Eval-STM32F107_uCOS-III,版本为V1.29.01.00。1 硬件结构
从系统接口看,该控制器具有显示、按键、无线收发、串口、485总线等接口,作遥控面板时用电池供电,内部具有电池和充电电路。硬件框图如图1所示。
图1中无线串口用模块实现系统遥控功能,显示器用并口连接。键盘部分有或门电路,可实现按键中断。电源电路中的外部电压、电池电压可被控制器测量,当测量得到无外部电压输入时,控制器自动切换到遥控面板模式。485总线接口用于和其他子系统通信。

图1 多功能控制器硬件框图

2 系统移植
STM32F1XX固件库最新版本为V3.5.0。μC/OSIII支持的库文件版本为V2.1.0。为了μC/OS-III能够在最新的固件库上运行,首先用新固件库替换原有固件库代码并改变入口头文件名,然后有两处代码需要作修改。一是芯片时钟初始化函数,函数名为“BSP_Init”,修改为:


二是操作系统时钟初始化函数,函数名为“OS_CPU_SysTickInit”,修改为:

这两处都是因为原有固件库需要多条语句才能实现时钟初始化,新版本提供专门的初始化函数。
3 驱动编写
3.1 键盘驱动的编写
μC/OS-III具有任务信号量的功能,该信号量随着任务的创建而创建。键盘驱动有键盘扫描任务实现,按键触发外部中断,外部中断发送任务信号量到键盘扫描任务,键盘扫描任务扫描键盘并把键值保持在全局变量中。代码如下:
继承事业,薪火相传
返回列表