- kGpio_up=GPIO_MAKE_PIN(HW_GPIOA,24U),
- kGpio_down=GPIO_MAKE_PIN(HW_GPIOA,25U),
- kGpio_left=GPIO_MAKE_PIN(HW_GPIOA,27U),
- kGpio_right=GPIO_MAKE_PIN(HW_GPIOA,26U),
- kGpio_select=GPIO_MAKE_PIN(HW_GPIOA,4U),
作者: 西门扫雪 时间: 2015-7-20 20:24
(2)引脚配置
- const gpio_input_pin_user_config_t upkey[] = {
- {
- .pinName = kGpio_up,
- .config.isPullEnable = true,
- .config.pullSelect = kPortPullUp,
- .config.isPassiveFilterEnabled = false,
- .config.interrupt = kPortIntDisabled,
- },
- // {
- // .pinName = GPIO_PINS_OUT_OF_RANGE,
- // }
- };
其他GPIO口如downkey、leftkey、rightkey、selectkey相同配置。
作者: 西门扫雪 时间: 2015-7-20 20:25
(3)使能端口时钟,配置方向与初始化
- SIM_HAL_EnablePortClock(SIM_BASE, 0); //initial PORTA clock
- //initial upkey
- GPIO_DRV_SetPinDir(kGpio_up,kGpioDigitalInput); //
- PORT_HAL_SetMuxMode(PORTA_BASE,0x18, kPortMuxAsGpio);
- GPIO_DRV_InputPinInit(upkey);
其他端口类似配置
作者: 西门扫雪 时间: 2015-7-20 20:25
(4)LCD配置与初始化
- /* Initialize standard SDK demo application pins */
- for (i = 0; i < HW_PORT_INSTANCE_COUNT; i++) {
- CLOCK_SYS_EnablePortClock(i);
- }
- lcd_flexbus_init();
- CLOCK_SYS_GetFreq(kFlexBusClock,&freq);
- LCDC_Init();
作者: 西门扫雪 时间: 2015-7-20 20:26
(5)设置指针指向图片信息,并拷贝图片数据到SDRAM中
- for(i=0; i<320*240; i++)
- {
- p1[i] = *((uint16_t *)&gImage_ecbc[j]);;
- j+=2;
- }
- LCDC_Bmp(0,0,320,240,(unsigned short *)p1);
作者: 西门扫雪 时间: 2015-7-20 20:26
(6)进入主循环,获取按键的信息,分别显示对应的按键图片
- while(1)
- {
- upkey_value=GPIO_DRV_ReadPinInput(kGpio_up);
- downkey_value=GPIO_DRV_ReadPinInput(kGpio_down);
- leftkey_value=GPIO_DRV_ReadPinInput(kGpio_left);
- rightkey_value=GPIO_DRV_ReadPinInput(kGpio_right);
- selectkey_value=GPIO_DRV_ReadPinInput(kGpio_select);
- //
- if(upkey_value == 0)
- {
- //LCDC_Init();
- j=0;
- for(i=0; i<320*240; i++)
- {
- p1[i] = *((uint16_t *)&gImage_up[j]);;
- j+=2;
- }
- LCDC_Bmp(0,0,320,240,(unsigned short *)p1);
- //for(i=0;i<10000000;i++);
- for(i=0;i<100;i++);
- //LCDC_Init();
- }
欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/) |
Powered by Discuz! X3.5 |