查看: 3709|回复: 2

[原创] LPC55S69-EVK开发板__ 让TFT显示屏亮起来

[复制链接]
  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    连续签到: 1 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7123
    最后登录
    2023-4-20
    发表于 2020-11-11 22:17:51 | 显示全部楼层 |阅读模式
    受物趣系列的感召开始学习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. }
    复制代码

    TFT显示屏的初始化函数为:
    1. void tft_Init(void)
    2. {
    3. LCD_REST_Low();
    4. SysTick_DelayTicks(20);
    5. LCD_REST_High();
    6. SysTick_DelayTicks(20);
    7. LCD_CS_Low();
    8. LCD_WR_REG(0xCB);
    9. LCD_WR_DATA8(0x39);
    10. LCD_WR_DATA8(0x2C);
    11. LCD_WR_DATA8(0x00);
    12. LCD_WR_DATA8(0x34);
    13. LCD_WR_DATA8(0x02);
    14. LCD_WR_REG(0xCF);
    15. LCD_WR_DATA8(0x00);
    16. LCD_WR_DATA8(0XC1);
    17. LCD_WR_DATA8(0X30);
    18. LCD_WR_REG(0xE8);
    19. LCD_WR_DATA8(0x85);
    20. LCD_WR_DATA8(0x00);
    21. LCD_WR_DATA8(0x78);
    22. LCD_WR_REG(0xEA);
    23. LCD_WR_DATA8(0x00);
    24. LCD_WR_DATA8(0x00);
    25. LCD_WR_REG(0xED);
    26. LCD_WR_DATA8(0x64);
    27. LCD_WR_DATA8(0x03);
    28. LCD_WR_DATA8(0X12);
    29. LCD_WR_DATA8(0X81);
    30. LCD_WR_REG(0xF7);
    31. LCD_WR_DATA8(0x20);
    32. LCD_WR_REG(0xC0);
    33. LCD_WR_DATA8(0x23);
    34. LCD_WR_REG(0xC1);
    35. LCD_WR_DATA8(0x10);
    36. LCD_WR_REG(0xC5);
    37. LCD_WR_DATA8(0x3e);
    38. LCD_WR_DATA8(0x28);
    39. LCD_WR_REG(0xC7);
    40. LCD_WR_DATA8(0x86);
    41. LCD_WR_REG(0x36);
    42. LCD_WR_DATA8(0x48);
    43. LCD_WR_REG(0x3A);
    44. LCD_WR_DATA8(0x55);
    45. LCD_WR_REG(0xB1);
    46. LCD_WR_DATA8(0x00);
    47. LCD_WR_DATA8(0x18);
    48. LCD_WR_REG(0xB6);
    49. LCD_WR_DATA8(0x08);
    50. LCD_WR_DATA8(0x82);
    51. LCD_WR_DATA8(0x27);
    52. LCD_WR_REG(0xF2);
    53. LCD_WR_DATA8(0x00);
    54. LCD_WR_REG(0x26);
    55. LCD_WR_DATA8(0x01);
    56. LCD_WR_REG(0xE0);
    57. LCD_WR_DATA8(0x0F);
    58. LCD_WR_DATA8(0x31);
    59. LCD_WR_DATA8(0x2B);
    60. LCD_WR_DATA8(0x0C);
    61. LCD_WR_DATA8(0x0E);
    62. LCD_WR_DATA8(0x08);
    63. LCD_WR_DATA8(0x4E);
    64. LCD_WR_DATA8(0xF1);
    65. LCD_WR_DATA8(0x37);
    66. LCD_WR_DATA8(0x07);
    67. LCD_WR_DATA8(0x10);
    68. LCD_WR_DATA8(0x03);
    69. LCD_WR_DATA8(0x0E);
    70. LCD_WR_DATA8(0x09);
    71. LCD_WR_DATA8(0x00);
    72. LCD_WR_REG(0XE1);
    73. LCD_WR_DATA8(0x00);
    74. LCD_WR_DATA8(0x0E);
    75. LCD_WR_DATA8(0x14);
    76. LCD_WR_DATA8(0x03);
    77. LCD_WR_DATA8(0x11);
    78. LCD_WR_DATA8(0x07);
    79. LCD_WR_DATA8(0x31);
    80. LCD_WR_DATA8(0xC1);
    81. LCD_WR_DATA8(0x48);
    82. LCD_WR_DATA8(0x08);
    83. LCD_WR_DATA8(0x0F);
    84. LCD_WR_DATA8(0x0C);
    85. LCD_WR_DATA8(0x31);
    86. LCD_WR_DATA8(0x36);
    87. LCD_WR_DATA8(0x0F);
    88. LCD_WR_REG(0x11);
    89. SysTick_DelayTicks(120);
    90. LCD_WR_REG(0x29);
    91. LCD_WR_REG(0x2c);
    92. }
    复制代码

    显示屏显示图片的函数为:
    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所示效果的主程序为:
    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 图片显示效果


    2.jpg
    2 功能界面显示效果


    后续的任务可能会困难起来,因为手头的摄像头是当年很随意买的,是不带FIFO缓存的,不知在图像获取时是否能用,此外也没有相应的驱程,只好慢慢探索了!

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-10-28 09:18
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    4

    主题

    35

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    357
    最后登录
    2022-9-29
    发表于 2020-11-11 22:38:35 | 显示全部楼层
    666
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    连续签到: 1 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7123
    最后登录
    2023-4-20
     楼主| 发表于 2020-11-11 22:41:28 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-18 18:24 , Processed in 0.086849 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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