这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【MAX78000FEATHERBOARD】TFT屏幕驱动

共2条 1/1 1 跳转至

【MAX78000FEATHERBOARD】TFT屏幕驱动

工程师
2025-07-12 17:07:03     打赏

环境搭建的内容可以参考:【MAX78000FEATHERBOARD】开箱与Eclipse环境搭建

本次介绍如何驱动ILI9341屏幕。涉及硬件:SPI

TFT屏幕驱动

屏幕信息:驱动芯片是ili9341,SPI接口,带触摸功能。

FnrWnlghPij92jdgXKC_wjJgK9R5

此次利用MAX78000的SPI0接口来驱动屏幕:

屏幕序号

屏幕引脚标号

说明

MAX7800引脚

1

VCC

5V/3.3V电源输入

3.3V

2

GND

接地

GND

3

CS

屏幕片选信号,低电平使能

MXC_GPIO_PIN_11

4

RESET

液晶屏复位信号,低电平复位

MXC_GPIO_PIN_19

5

DC/RS

液晶屏寄存器/数据选择信号,低电平:寄存器;高电平:数据

MXC_GPIO_PIN_8

6

SDI(MOSI)

SPI总线“写”数据信号

MXC_GPIO_PIN_5

7

SCK

SPI总线时钟信号

MXC_GPIO_PIN_7

8

LED

背光控制,高电平点亮,如无需控制则接3.3V常量

MXC_GPIO_PIN_9

9

SDO(MISO)

SPI总线“读”数据信号,如无需读取功能则可不接

         -

10

T_CLK

触摸SPI总线时钟信号


11

T_CS

触摸屏片选信号,低电平使能


12

T_DIN

触摸SPI总线输入


13

T_DO

触摸SPI总线输出


14

T_IRQ

触摸屏中断信号,检测到触摸时为低电平


屏幕片选:slave 1:

Fqvqova4J7OEZ1gQ1y9dtF9ZA1pj

slave 1连接的是PIN_11

        //Define pins
       if (pins.ss1) {
           gpio_cfg_spi.mask = MXC_GPIO_PIN_11;
           gpio_cfg_spi.func = MXC_GPIO_FUNC_ALT2;
           MXC_GPIO_Config(&gpio_cfg_spi);
       }

复位和背光的连接:

    mxc_gpio_cfg_t tft_reset_pin = {MXC_GPIO0, MXC_GPIO_PIN_19,
   MXC_GPIO_FUNC_OUT, MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH};

   mxc_gpio_cfg_t tft_blen_pin = {MXC_GPIO0, MXC_GPIO_PIN_9,
   MXC_GPIO_FUNC_OUT, MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH};

DC引脚:

    /* TFT DC signal */
   mxc_gpio_cfg_t tft_dc_pin = { MXC_GPIO0, MXC_GPIO_PIN_8, MXC_GPIO_FUNC_OUT, MXC_GPIO_PAD_NONE,
                                 MXC_GPIO_VSSEL_VDDIOH };

SCK连接PIN_7;MOSI连接PIN_5

#ifdef MXC_SPI0
   } else if (spi == MXC_SPI0) {
       MXC_SYS_Reset_Periph(MXC_SYS_RESET1_SPI0);
       MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_SPI0);

       //Define pins
       if (pins.ss1) {
           gpio_cfg_spi.mask = MXC_GPIO_PIN_11;
           gpio_cfg_spi.func = MXC_GPIO_FUNC_ALT2;
           MXC_GPIO_Config(&gpio_cfg_spi);
       }

       if (pins.ss2) {
           gpio_cfg_spi.func = MXC_GPIO_FUNC_ALT2;
           gpio_cfg_spi.mask = MXC_GPIO_PIN_10;
           MXC_GPIO_Config(&gpio_cfg_spi);
       }

       //clear mask
       gpio_cfg_spi.mask = 0;

       // check rest of the pins
       if (pins.clock) {
           gpio_cfg_spi.mask |= MXC_GPIO_PIN_7;
       }

       if (pins.miso) {
           gpio_cfg_spi.mask |= MXC_GPIO_PIN_6;
       }

       if (pins.mosi) {
           gpio_cfg_spi.mask |= MXC_GPIO_PIN_5;
       }

       if (pins.sdio2) {
           gpio_cfg_spi.mask |= MXC_GPIO_PIN_8;
       }

       if (pins.sdio3) {
           gpio_cfg_spi.mask |= MXC_GPIO_PIN_9;
       }

       if (pins.ss0) {
           gpio_cfg_spi.mask |= MXC_GPIO_PIN_4;
       }

       gpio_cfg_spi.func = MXC_GPIO_FUNC_ALT1;
#endif

FqJoADoHJRt6LGELQDHXorTkKDpo


专家
2025-07-13 15:35:21     打赏
2楼

感谢分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]