原创 智林STM32开发板上实现的简单人机界面之一

2009-10-13 17:22 5936 10 10 分类: MCU/ 嵌入式

https://static.assets-stash.eet-china.com/album/old-resources/2009/10/13/8140330f-2644-462e-8771-20aa65944906.rar智林STM32工程文件


如果有智林STM32开发板的朋友可以下载使用,利用按键输入英文,在屏幕上显示。


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />20091012星期一 16:12:45


标题:简单人机接口程序设计


一、工作环境


1、智林STM32开发板。


2、已经移植好的ucos ii V2.86操作系统环境。


二、设计目标。


在前面的一篇文章《人机接口程序的编制计划01里已经描述了界面功能、程序框架,现在就开始吧。


三、步骤


1、利用前面已有的工程进行修改,保留四个任务:开始任务、键盘扫描任务、按键处理任务和显示任务,其它的不用的都删掉,使程序结构更清晰。


2、调整工程的组,建立五个组:startupucos_stm32ucosshelluserapp


   Startup里加入两个文件:起动文件和库文件


   ucos_stm32:放入ucosSTM32上移植的两个文件。


   Usos操作系统的源文件


   Shell:放入LCD驱动文件和字符显示文件


   Userapp:包括中断程序、系统初始化程序和用户主程序文件,另外每个用户任务使用一个C文件。


3、先进行键盘扫描任务设计:


该键盘扫描程序的作用:实现了数字、字符键的单击和连击,而系统键PB2PB3则只在按下时发送按下信息。PB2用于模式切换,PB3表示ENTER。最终作为回车换行处理。


4、接下来进行按键消息处理任务的设计


如果为字符输入按键,则根据当前模式和按键消息值从表中取得相应的ascii字符。如果按下PB2,则进行模式的切换。这个任务设计下来,发现没有使用显示任务的必要,在按键消息处理任务中可以直接调用Shell_PutChar函数进行输入字符的显示。


 


5、进行液晶显示函数的修改


对外输出的函数主要有:


void LCD_Init( void ); //液晶初始化函数


void LCD_ClearScreen( void );  //用背景色进行清屏


void LCD_FillScreen(u16 ColorData ); //用指定颜色清屏


void LCD_SetPixel(u16 x, u16 y, u16 ColorData); //设置点的颜色


void LCD_PutChar(u16 x, u16 y, u8 c, u16 ForeColor, u16 BackColor);  //输出字符


在字符输出模式下,主要用到第五个函数。


 


6、进行字符输入函数的编写。


主要编写了这么几个函数:


void Shell_PutChar(u8 CharValue);   //输出字符函数


void Shell_PutCharColor(u8 CharValue, u16 FColor, u16 BColor);//输出指定前景色和背景色的字符


 


void Shell_PutString(u8* Str);  //在当前位置输出字符串


void Shell_PutStrPos( u16 Col, u16 Row, u8* Str); //在指定位置输出字符,并不改变光标位置。


void Shell_PutStrColor( u8* Str, u16 FColor, u16 BColor); //输出指定颜色字符串。


void Shell_PutStrPC( u16 Col, u16 Row, u8* Str, u16 FColor, u16 BColor); //前两者综合。


 


四、最终效果


在屏幕上留出一栏显示CPU利用率,现在的输入模式(五个按键对应abcd 还是efgh)。


剩下的7栏用于显示字符,可以输入所有的小写字母,可用输入逗号和句号,空格,可以实现退格。每输入一个字符,系统内部光标往前移动。


系统复位以后,屏幕显示系统信息,输入模式为:abcd 。这时候摇杆往上屏幕显示a,往右显示b,往左显示c,往下显示d如果按下PB3,系统光标转移到下一行,可以进行新的输入。


我试了一下,在屏幕上输入hello,world.并拍照:如图。


点击看大图

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
10
关闭 站长推荐上一条 /3 下一条