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" />2009年10月12日星期一 16:12:45
标题:简单人机接口程序设计
一、工作环境
1、智林STM32开发板。
2、已经移植好的ucos ii V2.86操作系统环境。
二、设计目标。
在前面的一篇文章《人机接口程序的编制计划01》里已经描述了界面功能、程序框架,现在就开始吧。
三、步骤
1、利用前面已有的工程进行修改,保留四个任务:开始任务、键盘扫描任务、按键处理任务和显示任务,其它的不用的都删掉,使程序结构更清晰。
2、调整工程的组,建立五个组:startup,ucos_stm32,ucos,shell,userapp。
Startup里加入两个文件:起动文件和库文件
ucos_stm32:放入ucos在STM32上移植的两个文件。
Usos:操作系统的源文件
Shell:放入LCD驱动文件和字符显示文件
Userapp:包括中断程序、系统初始化程序和用户主程序文件,另外每个用户任务使用一个C文件。
3、先进行键盘扫描任务设计:
该键盘扫描程序的作用:实现了数字、字符键的单击和连击,而系统键PB2和PB3则只在按下时发送按下信息。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.并拍照:如图。
文章评论(0条评论)
登录后参与讨论