MAPS K64教程之恩智浦四色板MAPS K64神奇的摇杆

分享到:

本实验用四色板的的摇杆键(上、下、左、右、选中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脚定义,其他引脚相同;

  1. SIM_HAL_EnablePortClock(SIM_BASE, 0x00);
  2.  
  3. GPIO_DRV_SetPinDir(kGpioSELECT, kGpioDigitalInput);
  4.  
  5. PORT_HAL_SetMuxMode(PORTA_BASE, kGpioSELECT, kPortMuxAsGpio);
  6.  
  7. GPIO_DRV_InputPinInit(selectPin);

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

  1. //selectPin Struct
  2.  
  3. const gpio_input_pin_user_config_t selectPin[] = {
  4.  
  5. {
  6.  
  7. .pinName = kGpioSELECT,
  8.  
  9. .config.isPullEnable = true,
  10.  
  11. .config.pullSelect = kPortPullUp,
  12.  
  13. .config.isPassiveFilterEnabled = false,
  14.  
  15. .config.interrupt = kPortIntDisabled,
  16.  
  17. },
  18.  
  19. {
  20.  
  21. .pinName = GPIO_PINS_OUT_OF_RANGE,
  22.  
  23. }
  24.  
  25. };

基本程序流程如下:

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

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

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

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

  1. keyValue=GPIO_DRV_ReadPinInput(kGpioSELECT);//读选中键的键值,没按下为高电平,按下后为低电平
  2.  
  3. if(keyValue==0) //如何该键按下
  4.  
  5. {
  6.  
  7. //OSA_TimeDelay(50); //delay 50ms //消抖动
  8.  
  9. keyValue=GPIO_DRV_ReadPinInput(kGpioSELECT); //再次读取选中键的键值
  10.  
  11. if(keyValue==0) //仍然被按下
  12.  
  13. {
  14.  
  15. for(i=0; i<320*240; i++)
  16.  
  17. {
  18.  
  19. p1[i] = *((uint16_t *)&gImage_select[j]);; //按下选中键显示的图像指针
  20.  
  21. j+=2;
  22.  
  23. }
  24.  
  25. LCDC_Bmp(0,0,320,240,(unsigned short *)p1); //显示对应键值的图像
  26.  
  27. //for(i=0;i<10000000;i++);
  28.  
  29. keyValue=1; //清键值
  30.  
  31. j=0; //清图像指针增量
  32.  
  33. }
  34.  
  35. }

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

 

 

 

 

 

更多恩智浦(NXP)及恩智浦技术教程请关注:
NXP中文官方:https://www.nxp.com/zh-Hans/
NXP中文技术论坛:https://www.nxpic.org/

 

继续阅读
恩智浦沉浸式音频系统,Dolby Atmos和DTS:X音频品质带来全新体验

恩智浦半导体近日推出了面向智能家居市场的Immersiv3D沉浸式音频解决方案,开启先进的音频系统设计和开发新时代。该解决方案将恩智浦突破性的软件与i.MX 8M Mini应用处理器相结合,在集成i.MX 8M Mini SoC的设备中支持Dolby Atmos和DTS:X。i.MX 8M Mini还为更广泛的消费类设备(包括条形音箱、智能扬声器和AV接收器)提供语音交互控制等智能功能,消费者可以选择添加其他扬声器,以便在家庭的各个场所分配智能语音控制和沉浸式音频。

三年三项成绩!NXP让100+城市“刷手机坐公交”梦想成真

如今在选择公交出行时,越来越多的人开始使用含有NFC功能的手机或移动设备进行支付。不用点亮屏幕,不用打开App扫码,只需手机轻轻一触,便可一闪而过—— 对于这样的“刷手机坐公交”的体验,人们已经不再陌生。

NXP“芯”愿:携手生态伙伴,共推人工智能物联网应用落地

12月18日,是一个非常重要的日子。到这一天,中国的改革开放正好走过了40年的光辉历程。这40年里,改革开放不断延续,奇迹也在不断地发生。这40年也见证了中国集成电路产业的快速发展、整体实力的显著提升,集成电路设计、制造能力与国际先进水平差距的不断缩小,封装测试技术逐步接近国际先进水平,以及部分关键装备和材料不断被国内外生产线所采用,特别是中国不断涌现出一批具备一定国际竞争力的企业,产业集聚效应日趋明显。

恩智浦携手合作伙伴荣获CATRENE创新大奖,推出功耗更低使用更方便的5G产品

日前,恩智浦及其EAST联盟(致力于通过小型基站技术普及智能化,随时随地可访问内容)合作伙伴荣获CATRENE创新大奖,其中包括诺基亚、贝思、Anteverta、Bruco、代尔夫特理工大学、埃因霍温理工大学和TNO。EAST项目被选为用来开发高度集成、节能且成本效益高的技术,以支持5G移动通信网络的推出。

和高通牵手失败后,恩智浦在很多方面下了大功夫来让自己走的更远

汽车事业部的营收占整个恩智浦半导体(NXP Semiconductors)营收的一半左右,恩智浦汽车事业部技术长Lars Reger原本预期高通(Qualcomm)与恩智浦会顺利合并,因而规划了汽车技术发展蓝图。然而,在6月中从旧金山(San Francisco)飞往法兰克福(Frankfurt)的这11个小时航班里,他的期望落了空。”