查看: 1554|回复: 2

[原创] 【NXP共享】LPC54110+驱动TFT液晶屏实现输出显示

[复制链接]
  • TA的每日心情
    开心
    昨天 09:29
  • 签到天数: 1091 天

    连续签到: 9 天

    [LV.10]以坛为家III

    28

    主题

    4249

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5742
    最后登录
    2025-7-17
    发表于 2024-6-4 23:01:06 | 显示全部楼层 |阅读模式
    为了后续程序的调试以及显示数据,将液晶显示屏接入开发板。本次实验使用以ST7735S为驱动核心的1.8寸TFT显示屏作为显示输出部件,使用SPI通讯方式输出显示数据。显示屏需要提供开发板提供几个接口完成通讯,连接设置为:
    显示屏                            开发板
    ================================
    1、地:GND                       GND
    2、电源:VDD,3.3V               VDD
    3、时钟:SCK                      P01.1
    4、数据:SDA                      P01.2
    5、复位RST                      P01.3
    6、指令、数据寄存器选择DC       P01.4
    7、片选:CS                        P01.5
    8、背景灯:BLK
    没找到开发板的电原理图,只好根据开发板上的印字,选择了几个IO口作为接口引脚使用。为了快速实现通讯控制,以IO口模拟SPI方式通讯。通讯之前需要验证这几个IO是否可以顺利实现高低电平的输出控制,先以驱动LED模式方式测试。
    定义关联的管脚和口:
    #define PORT01  1U   /*!<@brief PORT device name: 1U */
    #define PIN01_0 0U
    #define PIN01_1 1U
    #define PIN01_2 2U
    #define PIN01_3 3U
    #define PIN01_4 4U
    初始化函数:
    void BOARD_InitPins(void) {
        /* Enables the clock for the IOCON block. 0 = Disable; 1 = Enable.: 0x01u */
        CLOCK_EnableClock(kCLOCK_Iocon);
        /* Enables the clock for the GPIO1 module */
        CLOCK_EnableClock(kCLOCK_Gpio1);
        gpio_pin_config_t LED_GREEN_config = {
            .pinDirection = kGPIO_DigitalOutput,
            .outputLogic = 0U
        };
    // 初始化关联管脚
    GPIO_PinInit(GPIO, PORT01, PIN01_0, &LED_GREEN_config);
        GPIO_PinInit(GPIO, PORT01, PIN01_1, &LED_GREEN_config);
        GPIO_PinInit(GPIO, PORT01, PIN01_2, &LED_GREEN_config);
        GPIO_PinInit(GPIO, PORT01, PIN01_3, &LED_GREEN_config);
        GPIO_PinInit(GPIO, PORT01, PIN01_4, &LED_GREEN_config);
    }
    在主程序中,测试IO口输出:
    int main(void) {
        /* Init output LED GPIO. */
        GPIO_PortInit(GPIO, BOARD_LED_PORT);
        /* Board pin init */
        BOARD_InitPins();
        BOARD_InitBootClocks();
        /* Set systick reload value to generate 1ms interrupt */
        if (SysTick_Config(SystemCoreClock / 1000U)) {
            while (1) {
                
            }
        }
        while (1) {
            /* Delay 1000 ms */
            SysTick_DelayTicks(1000U);
            GPIO_PortToggle(GPIO, PORT01, 1u << PIN01_0);
            GPIO_PortToggle(GPIO, PORT01, 1u << PIN01_1);
            GPIO_PortToggle(GPIO, PORT01, 1u << PIN01_2);
            GPIO_PortToggle(GPIO, PORT01, 1u << PIN01_3);
            GPIO_PortToggle(GPIO, PORT01, 1u << PIN01_4);
        }
    }
    使用LED测试了输出控制,没有问题。
    接下来,引入TFT显示屏的处理代码,实现显示输出。
    在主程序中加入下面代码:
    [size=18.6667px]    Lcd_Init();
    [size=18.6667px]    Lcd_Clear(BLACK);
    [size=18.6667px]   
    [size=18.6667px]    Gui_DrawFont_GBK16(0, 0, WHITE, BLACK, (uint8_t *)"Hello World ...");
    [size=18.6667px]编译、下载,复位开发板。可以看到结果:
    1.jpg

    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 935 天

    连续签到: 10 天

    [LV.10]以坛为家III

    14

    主题

    4394

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    7454
    最后登录
    2025-7-18
    发表于 2024-6-5 08:48:38 | 显示全部楼层
    我在坛中找的,忘了具体哪个贴。

    LPC54110.pdf

    79.25 KB, 下载次数: 5, 下载积分: 威望 1

    永远开心快乐
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:29
  • 签到天数: 1091 天

    连续签到: 9 天

    [LV.10]以坛为家III

    28

    主题

    4249

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5742
    最后登录
    2025-7-17
     楼主| 发表于 2024-6-6 08:37:17 | 显示全部楼层
    ldptest 发表于 2024-6-5 08:48
    我在坛中找的,忘了具体哪个贴。

    十分感谢!像是黑夜中的一束光!谢谢!
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

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

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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