查看: 4101|回复: 0

[原创] ART-Pi开发板驱动 2.8寸TFT显示屏

[复制链接]
  • TA的每日心情
    奋斗
    2023-5-10 20:09
  • 签到天数: 1742 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2021-1-20 22:49:08 | 显示全部楼层 |阅读模式
    分享到:
    在大赛期间,为了实现桌面式智能家居控制系统的设计,特意购置一块2.8寸的触摸屏,但由于时间紧张当时并没有排上用场。赛事虽然过去了,闲下来还是将它的驱动问题解决了。解决的方法并没有按厂家提供的例程来解决,而是在所用的2.2寸屏的基础上,直接通过修改初始化函数来解决。
    2.8寸显示屏的初始化函数为:
    1. void LCD_Init(void)
    2. {
    3. LCD_REST_Low();
    4. delay_ms(50);
    5. LCD_REST_High();
    6. delay_ms(50);
    7. LCD_WR_REG(0xCF);
    8. LCD_WR_DATA8(0x00);
    9. LCD_WR_DATA8(0xD9);
    10. LCD_WR_DATA8(0X30);
    11. LCD_WR_REG(0xED);
    12. LCD_WR_DATA8(0x64);
    13. LCD_WR_DATA8(0x03);
    14. LCD_WR_DATA8(0X12);
    15. LCD_WR_DATA8(0X81);
    16. LCD_WR_REG(0xE8);
    17. LCD_WR_DATA8(0x85);
    18. LCD_WR_DATA8(0x10);
    19. LCD_WR_DATA8(0x78);
    20. LCD_WR_REG(0xCB);
    21. LCD_WR_DATA8(0x39);
    22. LCD_WR_DATA8(0x2C);
    23. LCD_WR_DATA8(0x00);
    24. LCD_WR_DATA8(0x34);
    25. LCD_WR_DATA8(0x02);
    26. LCD_WR_REG(0xF7);
    27. LCD_WR_DATA8(0x20);
    28. LCD_WR_REG(0xEA);
    29. LCD_WR_DATA8(0x00);
    30. LCD_WR_DATA8(0x00);
    31. LCD_WR_REG(0xC0);
    32. LCD_WR_DATA8(0x21);
    33. LCD_WR_REG(0xC1);
    34. LCD_WR_DATA8(0x12);
    35. LCD_WR_REG(0xC5);
    36. LCD_WR_DATA8(0x32);
    37. LCD_WR_DATA8(0x3C);
    38. LCD_WR_REG(0xC7);
    39. LCD_WR_DATA8(0xC1);
    40. LCD_WR_REG(0x36);
    41. LCD_WR_DATA8(0x08);
    42. LCD_WR_REG(0x3A);
    43. LCD_WR_DATA8(0x55);
    44. LCD_WR_REG(0xB1);
    45. LCD_WR_DATA8(0x00);
    46. LCD_WR_DATA8(0x18);
    47. LCD_WR_REG(0xB6);
    48. LCD_WR_DATA8(0x0A);
    49. LCD_WR_DATA8(0xA2);
    50. LCD_WR_REG(0xF2);
    51. LCD_WR_DATA8(0x00);
    52. LCD_WR_REG(0x26);
    53. LCD_WR_DATA8(0x01);
    54. LCD_WR_REG(0xE0);
    55. LCD_WR_DATA8(0x0F);
    56. LCD_WR_DATA8(0x20);
    57. LCD_WR_DATA8(0x1E);
    58. LCD_WR_DATA8(0x09);
    59. LCD_WR_DATA8(0x12);
    60. LCD_WR_DATA8(0x0B);
    61. LCD_WR_DATA8(0x50);
    62. LCD_WR_DATA8(0xBA);
    63. LCD_WR_DATA8(0x44);
    64. LCD_WR_DATA8(0x09);
    65. LCD_WR_DATA8(0x14);
    66. LCD_WR_DATA8(0x05);
    67. LCD_WR_DATA8(0x23);
    68. LCD_WR_DATA8(0x21);
    69. LCD_WR_DATA8(0x00);
    70. LCD_WR_REG(0xE1);
    71. LCD_WR_DATA8(0x00);
    72. LCD_WR_DATA8(0x19);
    73. LCD_WR_DATA8(0x19);
    74. LCD_WR_DATA8(0x00);
    75. LCD_WR_DATA8(0x12);
    76. LCD_WR_DATA8(0x07);
    77. LCD_WR_DATA8(0x2D);
    78. LCD_WR_DATA8(0x28);
    79. LCD_WR_DATA8(0x3F);
    80. LCD_WR_DATA8(0x02);
    81. LCD_WR_DATA8(0x0A);
    82. LCD_WR_DATA8(0x08);
    83. LCD_WR_DATA8(0x25);
    84. LCD_WR_DATA8(0x2D);
    85. LCD_WR_DATA8(0x0F);
    86. LCD_WR_REG(0x11);
    87. delay_ms(120);
    88. LCD_WR_REG(0x29);
    89. LCD_Clear(WHITE);
    90. }
    复制代码

    以I/O口模拟SPI通讯的函数为:
    1. void LCD_Writ_Bus(unsigned char com)
    2. {
    3. unsigned char uci;
    4. for(uci=0;uci<8;uci++)
    5. {
    6. if(com & 0x80)
    7. {
    8. LCD_SDI_High();
    9. }
    10. else
    11. {
    12. LCD_SDI_Low();
    13. }
    14. com = com << 1;
    15. LCD_SCK_Low();
    16. LCD_SCK_High();
    17. }
    18. }
    复制代码

    2.8寸显示屏与STM32H750的连接关系如图1所示。
    1.jpg
    图1 显示屏的引脚连接

    经程序的编译下载,其运行效果如图2所示。
    2.jpg
    图2 显示效果

    由于触摸功能是原2.2寸屏所没有的,后面再争取将触摸的功能解决了,使桌面式智能家居控制系统更加易于使用。

    回复

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-12-24 01:38 , Processed in 0.107923 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.