飞思卡尔四色板MAPS K64之神奇的摇杆

作者: ECBC_zhy
上传时间为: 2015-05-05 04:54 PM
2015-05-05
阅读:

接着上次的《神奇的LED灯》,再来一发《神奇的摇杆》,很多人被这题目深深地折服了,哈哈~

言归正传,第二个小程序。

实验二:用四色板的的摇杆键(上、下、左、右、选中5个键)控制显示屏输出相应指示图片,比如按摇杆的左键,图片显示向左。

实验准备:四色板(MCU主板和外设板),安装好的IAR,烧录并安装好Jlink驱动,串口调试助手Putty,Image2LCD.exe程序;

首先从网上下载所需的图片,包括上、下、左、右、中5幅图像,另外额外下载了一幅美女图片,用于初始化LCD显示,裁剪成320*240大小,因为板子上的屏幕是这么大的,尺寸不对,图像容易有拉伸,用Image2LCD.exe程序转化为能够被直接调用显示的数组,并保存到pic.h中,如下图所示:

硬件不需要另外飞线或配置,具体引脚号如下图:

最重要的就是配置某引脚为GPIO口,这边我们吃了很多亏,我这边是HAL层和Driver层混用的,当然也可以全部用HAL层的函数来配置,一定要注意传入的地址没有错,引脚宏定义无误。kGpioSELECT = GPIO_MAKE_PIN(HW_GPIOA,4U),这是在头文件中对引脚的宏定义,即对portA的4脚定义,其他引脚相同;

SIM_HAL_EnablePortClock(SIM_BASE, 0x00);

GPIO_DRV_SetPinDir(kGpioSELECT, kGpioDigitalInput);

PORT_HAL_SetMuxMode(PORTA_BASE, kGpioSELECT, kPortMuxAsGpio);

GPIO_DRV_InputPinInit(selectPin);

传入Driver层引脚初始化函数的具体配置如下:

//selectPin Struct

const gpio_input_pin_user_config_t selectPin[] = {

{

.pinName = kGpioSELECT,

.config.isPullEnable = true,

.config.pullSelect = kPortPullUp,

.config.isPassiveFilterEnabled = false,

.config.interrupt = kPortIntDisabled,

},

{

.pinName = GPIO_PINS_OUT_OF_RANGE,

}

};

基本程序流程如下:

1、LCD_FlexBus初始化,LCD初始化,这里LCD显示需要通过FlexBus,所以也要初始化;

2、配置5个摇杆按键——上、下、左、右、选中,配置为上拉的GPIO口;

3、LCD显示初始化,初始化显示一张美女图片,PS:这真不是我女朋友,呵呵~

4、while循环,这是主循环,一直判断键值,

keyValue=GPIO_DRV_ReadPinInput(kGpioSELECT);//读选中键的键值,没按下为高电平,按下后为低电平

if(keyValue==0)   //如何该键按下

{

//OSA_TimeDelay(50); //delay 50ms      //消抖动

keyValue=GPIO_DRV_ReadPinInput(kGpioSELECT);    //再次读取选中键的键值

if(keyValue==0)       //仍然被按下

{

for(i=0; i<320*240; i++)         

{

p1[i] = *((uint16_t *)&gImage_select[j]);;            //按下选中键显示的图像指针

j+=2;

}

LCDC_Bmp(0,0,320,240,(unsigned short *)p1);      //显示对应键值的图像

//for(i=0;i<10000000;i++);

keyValue=1;                                     //清键值

j=0;                                                  //清图像指针增量

}

}    

最后上几张调试结果图,duang~duang~

飞思卡尔四色板MAPS K64之神奇的LED灯

飞思卡尔MAPS四色板上手小结

MAPS四色板专业评测

本文为ECBC实战营独家授权爱板网经验频道发布,未经允许,谢绝转载。


ECBC实战营:以实际产品为切入点,通过实际产品解耦信号链各个节点中的重点技术、产品、设计思路,同时会在整个实战过程中锻炼每个学员的项目分割能力、团队协调能力、表达演讲能力等综合素养。借助三个月的高强度、快节奏的系统性实战训练,让真正热爱电子技术的学生、工程师、创客迅速积累真正优秀工程师和技术管理者应该具备的专业技能、全局思维、职业素养,不仅让学员走向实际工作岗位后迅速适应、迅速成为职场的中坚力量,更为学员未来成为技术型管理人才和技术型创业人才奠定必要、坚实的综合基础

ECBC实战营二期详情

全部评论 ()
条评论
写评论

创建讨论帖子

登录 后参与评论
系统提示