新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于μC/OS-III及STM32的多功能控制器设计

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

作者:时间:2014-10-19来源:网络收藏

  电动轨道车控制系统一般分为多个子系统,子系统受一个主控器控制。这样的结构设计繁琐,编程复杂。采用μC/OS-III操作系统、F103RC微控制器、液晶屏、PVC按键、无线串口模块、锂电池等实现具有人机界面、无线串口功能的总线主控器。该控制器具有人机界面、轨道车主控器、遥控接收器、遥控面板等多种功能,并且能在不同项目中使用。(※ μC/OS-III从官网上下载,文件名为Micrium_uC-Eval-F107_uCOS-III,版本为V1.29.01.00。)

本文引用地址:http://www.eepw.com.cn/article/264099.htm

  1 硬件结构

  从系统接口看,该控制器具有显示、按键、无线收发、串口、485总线等接口,作遥控面板时用电池供电,内部具有电池和充电电路。硬件框图如图1所示。

  图1中无线串口用模块实现系统遥控功能,显示器用并口连接。键盘部分有或门电路,可实现按键中断。电源电路中的外部电压、电池电压可被控制器测量,当测量得到无外部电压输入时,控制器自动切换到遥控面板模式。485总线接口用于和其他子系统通信。

  

 

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

  2 系统移植

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

  

 

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

  

 

  这两处都是因为原有固件库需要多条语句才能实现时钟初始化,新版本提供专门的初始化函数。

  3 驱动编写

  3.1 键盘驱动的编写

  μC/OS-III具有任务信号量的功能,该信号量随着任务的创建而创建。键盘驱动有键盘扫描任务实现,按键触发外部中断,外部中断发送任务信号量到键盘扫描任务,键盘扫描任务扫描键盘并把键值保持在全局变量中。代码如下:

  

 

  3.2 液晶显示器printf函数

  液晶显示器一般是输入一个字符的编码和位置然后显示出来,不能实现字符串格式化显示。实现printf,首先使用格式化函数“vsnprintf”得到格式化后的字符串,然后该字符串被打印到屏幕上。具体函数如下:

  


上一页 1 2 下一页

关键词: μC/OS-III STM32 12864

评论


相关推荐

技术专区

关闭