找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1868|回复: 0
收起左侧

LPC55S69-EVK开发板驱动TFT显示屏

[复制链接]
ID:776997 发表于 2020-11-11 23:01 | 显示全部楼层 |阅读模式
受物趣系列的感召开始学习起LPC55S69-EVK开发板的使用,首先要做的就是让显示屏亮起来。且显示屏的尺寸要尽量合适。太小显示的内容不易分辨,太大的话若显示屏的分辨率比高,就需要有较高的刷新速度,否则会由于显示的原因而开销较多的时间,会影响到对摄像头获取数据的响应。
这里选用的是SPI接口的2.2'串口屏,为便于灵活地选用引脚,特以GPIO口模拟SPI通讯的方式来驱动该显示屏的显示。
该显示屏与MCU的连接关系如下:
SCK---PIO1_20
SDI---PIO1_21
D/C---PIO1_2
RST---PIO1_3
CS ---PIO0_26
LED---PIO1_1
相关引脚输出高低电平的语句定义为:
#define LCD_SCK_Low()   GPIO_PinWrite(GPIO, 1u, 20u, 0) //CLK
#define LCD_SCK_High()  GPIO_PinWrite(GPIO, 1u, 20u, 1)
#define LCD_SDI_Low()   GPIO_PinWrite(GPIO, 1u, 21u, 0) //DIN
#define LCD_SDI_High()  GPIO_PinWrite(GPIO, 1u, 21u, 1)
#define LCD_REST_Low()  GPIO_PinWrite(GPIO, 1u, 2u, 0) //RES
#define LCD_REST_High() GPIO_PinWrite(GPIO,1u, 2u, 1)
#define LCD_DC_Low()    GPIO_PinWrite(GPIO, 1u, 3u, 0) //DC
#define LCD_DC_High()   GPIO_PinWrite(GPIO, 1u, 3u, 1)
#define LCD_CS_Low()    GPIO_PinWrite(GPIO, 0u, 26u, 0) //CS
#define LCD_CS_High()   GPIO_PinWrite(GPIO, 0u, 26u, 1)
#define LCD_LED_Low()   GPIO_PinWrite(GPIO, 1u, 1u, 0) //BLK
#define LCD_LED_High()  GPIO_PinWrite(GPIO, 1u, 1u, 1)
配置相关引脚为输出功能的函数为:
  1. void app_tft_init(void)
  2. {
  3. gpio_pin_config_t   gpioPinConfig;
  4. gpioPinConfig.pinDirection = kGPIO_DigitalOutput;
  5. gpioPinConfig.outputLogic  = 1u;
  6. GPIO_PinInit (GPIO, 1u, 20u, &gpioPinConfig);
  7. GPIO_PinInit (GPIO, 1u, 21u, &gpioPinConfig);
  8. GPIO_PinInit (GPIO, 1u, 2u, &gpioPinConfig);
  9. GPIO_PinInit (GPIO, 1u, 3u, &gpioPinConfig);
  10. GPIO_PinInit (GPIO, 0u, 26u, &gpioPinConfig);
  11. GPIO_PinInit (GPIO, 1u, 1u, &gpioPinConfig);
  12. LCD_LED_High();
  13. }
复制代码
显示屏显示图片的函数为:
  1. void show_pic(const unsigned char *p)
  2. {
  3. int i,j;
  4. unsigned char picH,picL;
  5. Address_set(0,0,LCD_W-1,LCD_H-1);
  6. for(i=0;i<240;i++)
  7. {
  8. for(j=0;j<320;j++)
  9. {
  10. picH=*p++;
  11. picL=*p++;
  12. LCD_WR_DATA8(picH);
  13. LCD_WR_DATA8(picL);
  14. }
  15. }
  16. }
复制代码

显示图效果的主程序为:
  1. int main(void)
  2. {
  3. volatile uint8_t s_KeyValue = 0;
  4. POWER_SetBodVbatLevel(kPOWER_BodVbatLevel1650mv, kPOWER_BodHystLevel50mv, false);
  5. BOARD_BootClockFROHF96M();
  6. SystemCoreClockUpdate();
  7. if (SysTick_Config(SystemCoreClock / 1000U))
  8. {
  9. while (1)
  10. {
  11. }
  12. }
  13. app_tft_init();
  14. SysTick_DelayTicks(500);
  15. tft_Init();
  16. LCD_Clear(WHITE);
  17. show_pic(gImage_123);
  18. while(1);
  19. }
复制代码

1.jpg
图片显示效果

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表