This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28379D:C2000通过 SPI 与 LCD 进行通信

Guru**** 2782615 points

Other Parts Discussed in Thread: AFE031, C2000WARE, BOOSTXL-EDUMKII

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/893612/tms320f28379d-c2000-communicates-with-lcd-by-spi

器件型号:TMS320F28379D
主题中讨论的其他器件:AFE031C2000WAREBOOSTXL-EDUMKII

您好、专家、

我们是否有能够与 LCD 通信的 SPI 示例项目?它是 boostxl_afe031_f28379d_dacmode?

由于没有有关此示例的指南手册、我想与您再次核对。

如果上述示例不支持通过 SPI 模块与 LCD 进行通信、您能否提供可在 C2000Ware 文件夹中找到的相关解决方案? 谢谢!

此致

Rayna

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rayna、

    我们不提供与 LCD 屏幕连接的 SPI 示例。

    我想、C2000Ware 中提供的 SPI_ex3_external_loopback_fifo_interrupts 将是您开始项目的良好起点。

    此致、

    曼诺伊

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rayna/Manoj、

    下面是我使用 F280049C LaunchPad 为控制教育版 BoosterPack (BOOSTXL-EDUMKII)上的 LCD 而创建的示例代码。  该代码适用于该特定 LCD 及其控制器、但应用作参考。  请注意、实际的 LCD 命令和序列是从 SparkFun 上的项目中调整的。  该代码利用 C2000Ware 来控制 SPI 模块。  但愿这对您有所帮助。

    代码按原样提供。

    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    //
    //为 LAUNCHXL-F280049C 编写的代码
    //
    CRYSTALFONTZ CFA128B-0145T 128x128 SPI 彩色1.45" TFT
    //
    //超简单软件 SPI 示例代码。
    //
    // ref: www.crystalfontz.com/.../cfaf128128b0145t
    //
    // 2020年4月2日
    //
    // Gustavo Martinez
    //
    //====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    //
    //显示为 Crystalfontz CFA128B-0145T
    //   www.crystalfontz.com/.../cfaf128128b0145t
    //
    控制器为 Sitronix ST7735S
    //   www.crystalfontz.com/.../
    ////================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    
    
    
    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    //
    // LCD SPI &控制线
    // CK2_LP | PIN | EDU_BP
    //--- +--- ---------------
    // PGA1/3/5_GND | J1.02 | Joy_X
    // nc | J1.05 | Joy_SEL
    // ADCINB3/VDAC | J1.06 | MIC_IN
    // GPIO56 | J1.07 | LCD_SPI_CLK*
    // ADCINC4 | J1.08 | LIGHT_INT
    // GPIO37 | J1.09 | I2C_SCL
    // GPIO35 | J1.10 | I2C_SDA
    //
    GPIO59 | J2.11 | TEMP_DRDY
    // GPIO23 | J2.12 | NC (必须硬接线至 J2.17)
    // GPIO39 | J2.13 | LCD_SPI_CS*
    // GPIO17 | J2.14 | NC
    // GPIO16 | J2.15 | LCD_SPI_MOSI*
    // NC | J2.17 | LCD_RST*(必须硬接线至 J2.12)
    // GPIO57 | J2.19 | PWM_SERVC
    //
    ADCINA5 | J3.23 | ACC_XOUT
    // ADCINB0 | J3.24 | ACC_弹 出
    // ADCINC2 | J3.25 | ACC_ZOUT
    // ADCINB1 | J3.26 | Joy_Y
    //
    GPIO25 | J4.31 | LCD_RS*
    // GPIO18 | J4.32 | BUTTON2
    // GPIO30 | J4.33 | BUTTON1
    // GPIO58 | J4.34 | Gator
    // GPIO09 | J4.37 | PWM_Blu
    // GPIO11 | J4.39 | PWM_LED_LCD
    // GPIO10 | J4.40 |蜂鸣器_OUT
    
    /================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    
    
    ///----------------------------------------------------------
    //包含的文件
    //
    #include "driverlib.h"
    #include "device.h"
    
    //---------------
    //为 GPIO 设置定义
    //
    #define DEVICE_GPIO_PIN_LCD_SPI_CS 39U // LCD_SPI_CS 的 GPIO 编号
    #define DEVICE_GPIO_CFG_LCD_SPI_CS GPIO_39_GPIO39 // LCD_SPI_CS
    的"pinConfig"#define DEVICE_GPIO_PIN_LCD_RST 23U // LCD_RST 的 GPIO 编号
    #define DEVICE_GPIO_CFG_LCD_RST GPIO_23_GPIO23 // LCD_RST 的"pinConfig"
    #define DEVICE_GPIO_PIN_LCD_RS 25U // LCD_RS 的 GPIO 编号
    #define DEVICE_GPIO_CFG_LCD_RS GPIO_25_GPIO25 // LCD_RS 的"pinConfig"
    
    /../../---------------
    //为 LCD 控制引脚定义
    //
    #define LCD_SPI_CS_low GPIO_writePin (DEVICE_GPIO_PIN_LCD_SPI_CS、0)
    #define LCD_SPI_CS_HIGH GPIO_writePin (DEVICE_GPIO_PIN_LCD_SPI_CS、1)
    
    #define LCD_RST_LOW GPIO_writePin (DEVICE_GPIO_PIN_LCD_RST、0)
    #define LCD_RST_HIGH GPIO_writePin (DEVICE_GPIO_PIN_LCD_RST、1)
    
    #define LCD_RS_LOW GPIO_writePin (DEVICE_GPIO_PIN_LCD_RS、0)
    #define LCD_RS_HIGH GPIO_writePin (DEVICE_GPIO_PIN_LCD_RS,1)
    
    //../../---------------
    //为 ST7735寄存器定义。
    //参考: www.crystalfontz.com/.../ST7735_V2.1_20100505.pdf
    #define ST7735_SLPOUT (0x11)
    #define ST7735_DISPON (0x29)
    #define ST7735_CASET (0x2A)
    #define ST7735_RASET (0x2B)
    #define ST7735_RAMWR (0xB3)
    #define ST7735_RAMGC2 (0xST7735_STTR1)
    
    
    
    
    
    
    
    
    #define ST7735_STTR3 (0xST7735_STTR1)#define ST7735_STTR3 (0xST773_CTB4)#define ST7735_STFRCTR1 (0xST773_ST773_ST773_STTR1)#define ST773_STEP_STEP_ST773#define TR1 (0xST7735_STEP_STEP_STEP_STEP_STEP_ST773#define)#define
    )#define ST7735_ST7735_STEPCCTR3 (0xST7735_STEP_STEP_STEP_STEP_
    ST7735_PWCTR5 (0xC4)
    #define ST7735_VMCTR1 (0xC5)
    #define ST7735_GAMCTRP1 (0xE0)
    #define ST7735_GAMCTRN1 (0xE1)
    
    
    //========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    void msdelay (uint16_t msdelay)
    {
    uint16_t i、j;
    
    for (j=0;j<1000;j++)
    {
    for (i=0;i "="" nop");="" }="" =="==========================================================================" void="" spi_sendcommand(uint16_t="" command)="" uint16_t="" volatile="" dummy="0;" select="" the="" lcd's="" command="" register="" lcd_rs_low;="" lcd="" controller="" lcd_spi_cs_low;="" send="" via="" spi:="" spi_writedatablockingnonfifo(spia_base,="" <"sleep="" out"="" is="" chingrish="" for="" "wake")="" dc="" converter="" enabled,="" internal="" display="" oscillator="" started,="" and="" panel="" scanning="" started.="" spi_sendcommand(st7735_slpout);="" msdelay(120);="" frmctr1="" (b1h):="" frame="" rate="" control="" (in="" normal="" mode="" full="" colors)="" set="" frequency="" of="" colors="" mode.="" *="" +="" 20)="" x="" (line="" fpa="" bpa))="" 1="" GVDD = 5.0V
    // VRH=0x1F => GVDD=3.0V
    //每个节拍都是可变步进:
    // VRH[4:0]| VRH | GVDD
    // 00000b | 0x00 | 5.00v
    // 00001b | 0x01 | 4.75v
    // 00010b | 0x02 | 4.70v <<<
    // 00011b | 0x03 | 4.65v
    // 00100b | 0x04 | 4.60v
    // 00101b | 0x05 | 4.55v
    // 00110b | 0x06 | 4.50v
    // 00111b | 0x07 | 4.45v
    // 01000b | 0x08 | 4.40v
    // 01001b | 0x09 | 4.35V
    // 01010b | 0x0A | 4.30V
    // 01011b | 0x0B | 4.25V
    // 01100b | 0x0C | 4.20V
    // 01101b | 0x0D | 4.15v
    // 01110b | 0x0E | 4.10v
    // 01111b | 0x0F | 4.05v
    // 10000b | 0x10 | 4.00v
    // 10001b | 0x11 | 3.95v
    // 10010b | 0x12 | 3.90v
    // 10011b | 0x13 | 3.85v
    // 10100b | 0x14 | 3.80v
    // 10101b | 0x15 | 3.75v
    // 10110b | 0x16 | 3.70v
    // 10111b | 0x17 | 3.65v
    // 11000b | 0x18 | 3.60v
    // 11001b | 0x19 | 3.55v
    // 11010b | 0x1A | 3.50v
    // 11011b | 0x1B | 3.45v
    // 11100b | 0x1C | 3.40v
    // 11101b | 0x1D | 3.35v
    // 11110b | 0x1E | 3.25v
    // 11111b | 0x1F | 3.00v
    SPI_sendData (0x02);// 010i i000
    //|||||||||--未使用:0
    //|||||||--- IB_SEL0:
    //|||||---- IB_SEL1:
    //|||---- 未使用:010
    // IB_SEL[1:0]| IB_SEL | AVDD
    // 00b | 0x00 | 2.5µA <<<
    // 01b | 0x01 | 2.0µA μ A
    // 10b | 0x02 | 1.5µA μ A
    // 11b | 0x03 | 1.0µA μ A
    
    //PWCTR2 (C1h):电源控制2.
    //*设置 VGH 和 VGL 电源功率级别
    //限制:VGH-VGL <= 32V
    SPI_sendCommand (ST7735_PWCTR2);
    SPI_sendData (0xC5);// BT[2:0](0-15)设置 GVDD
    // BT[2:0]| VGH | VGL
    // 000b | 4X | 9.80v |-3X |-7.35v
    // 001b | 4X | 9.80v |-4X |-9.80v
    // 010b | 5X | 12.25v |-3X |-7.35v
    // 011b | 5X | 12.25v |-4X |-9.80v
    // 100b | 5X | 12.25v |-5X |-12.25v
    // 101b | 6X | 14.70v |-3X |-7.35v <<<
    // 110b | 6X | 14.70v |-4X |-9.80v
    // 111b | 6X | 14.70v |-5X |-12.25v
    
    //PWCTR3 (C2h):电源控制3 (正常模式/全色)
    //*在中设置运算放大器中的电流量
    //正常模式/全色。
    //*调整固定电流中的固定电流大小
    源驱动器的运算放大器中的//源。
    //*将升压器电路升压周期设置为正常模式/满
    //颜色。
    SPI_sendCommand (ST7735_PWCTR3);
    SPI_sendData (0x0D);// AP[2:0]设置运算放大器偏置电流
    // AP[2:0]|函数
    // 000b |关闭
    // 001b |小
    // 010b |中低
    // 011b |中
    // 100b |中高
    // 101b |大 <<<<
    // 110b |保留
    // 111b |保留
    SPI_sendData (0x00);// DC[2:0]升压器频率
    //直流[2:0]|电路1 |电路2、4
    // 000b | BCLK / 1 | BCLK / 1 <<<
    // 001b | BCLK / 1 | BCLK / 2
    // 010b | BCLK / 1 | BCLK / 4
    // 011b | BCLK /2 | BCLK /2
    // 100b | BCLK /2 | BCLK /4
    // 101b | BCLK / 4 | BCLK / 4
    // 110b | BCLK / 4 | BCLK / 8
    // 111b | BCLK / 4 | BCLK / 16
    
    //PWCTR4 (C3h):电源控制4 (在空闲模式/ 8色)
    //*在中设置运算放大器中的电流量
    //正常模式/全色。
    //*调整固定电流中的固定电流大小
    源驱动器的运算放大器中的//源。
    //*将升压器电路升压周期设置为正常模式/满
    //颜色。
    SPI_sendCommand (ST7735_PWCTR4);
    SPI_sendData (0x8D);// AP[2:0]设置运算放大器偏置电流
    // AP[2:0]|函数
    // 000b |关闭
    // 001b |小
    // 010b |中低
    // 011b |中
    // 100b |中高
    // 101b |大 <<<<
    // 110b |保留
    // 111b |保留
    SPI_sendData (0x1A);// DC[2:0]升压器频率
    //直流[2:0]|电路1 |电路2、4
    // 000b | BCLK / 1 | BCLK / 1
    // 001b | BCLK / 1 | BCLK / 2
    // 010b | BCLK / 1 | BCLK / 4 <<<
    // 011b | BCLK /2 | BCLK /2
    // 100b | BCLK /2 | BCLK /4
    // 101b | BCLK / 4 | BCLK / 4
    // 110b | BCLK / 4 | BCLK / 8
    // 111b | BCLK / 4 | BCLK / 16
    
    //PPWCTR5 (C4h):电源控制5 (在部分模式/全色模式下)
    //*在中设置运算放大器中的电流量
    //正常模式/全色。
    //*调整固定电流中的固定电流大小
    源驱动器的运算放大器中的//源。
    //*将升压器电路升压周期设置为正常模式/满
    //颜色。
    SPI_sendCommand (ST7735_PWCTR5);
    SPI_sendData (0x8D);// AP[2:0]设置运算放大器偏置电流
    // AP[2:0]|函数
    // 000b |关闭
    // 001b |小
    // 010b |中低
    // 011b |中
    // 100b |中高
    // 101b |大 <<<<
    // 110b |保留
    // 111b |保留
    SPI_sendData (0xEE);// DC[2:0]升压器频率
    //直流[2:0]|电路1 |电路2、4
    // 000b | BCLK / 1 | BCLK / 1
    // 001b | BCLK / 1 | BCLK / 2
    // 010b | BCLK / 1 | BCLK / 4
    // 011b | BCLK /2 | BCLK /2
    // 100b | BCLK /2 | BCLK /4
    // 101b | BCLK / 4 | BCLK / 4
    // 110b | BCLK / 4 | BCLK / 8 <<<
    // 111b | BCLK / 4 | BCLK / 16
    
    //VMCTR1 (C5h):VCOM 控制1
    SPI_sendCommand (ST7735_VMCTR1);
    SPI_sendData (0x51);//默认值:0x51 =>+4.525
    // VMH[6:0](0-100)设置 VCOMH
    // VMH=0x00 => VCOMH=+2.5V
    // VMH=0x64 => VCOMH=+5.0V
    SPI_sendData (0x4D);//默认:0x4D =>-0.575
    // VML[6:0](4-100)设置 VCOML
    // VML=0x04 => VCOML=-2.4V
    // VML=0x64 => VCOML= 0.0v
    
    //GMCTRP1 (E0h):伽马‘+’极性校正特性设置
    SPI_sendCommand (ST7735_GAMCTRP1);
    SPI_sendData (0x0a);
    SPI_sendData (0x1c);
    SPI_sendData (0x0c);
    SPI_sendData (0x14);
    SPI_sendData (0x33);
    SPI_sendData (0x2b);
    SPI_sendData (0x24);
    SPI_sendData (0x28);
    SPI_sendData (0x27);
    SPI_sendData (0x25);
    SPI_sendData (0x2C);
    SPI_sendData (0x39);
    SPI_sendData (0x00);
    SPI_sendData (0x05);
    SPI_sendData (0x03);
    SPI_sendData (0x0d);
    
    //GMCTRN1 (E1h):伽马‘-’极性校正特性设置
    SPI_sendCommand (ST7735_GAMCTRN1);
    SPI_sendData (0x0a);
    SPI_sendData (0x1c);
    SPI_sendData (0x0c);
    SPI_sendData (0x14);
    SPI_sendData (0x33);
    SPI_sendData (0x2b);
    SPI_sendData (0x24);
    SPI_sendData (0x28);
    SPI_sendData (0x27);
    SPI_sendData (0x25);
    SPI_sendData (0x2D);
    SPI_sendData (0x3a);
    SPI_sendData (0x00);
    SPI_sendData (0x05);
    SPI_sendData (0x03);
    SPI_sendData (0x0d);
    
    //COLMOD (3Ah):接口像素格式
    //*此命令用于定义 RGB 图片的格式
    //数据、这些数据将通过 MCU 接口传输。
    SPI_sendCommand (ST7735_COLMOD);
    SPI_sendData (0x06);//默认值:0x06 => 18位/像素
    // IFF[2:0] MCU 接口颜色格式
    // IFF[2:0]|格式
    // 000b |保留
    // 001b |保留
    // 010b |保留
    // 011b | 12位/像素
    // 100b |保留
    // 101b | 16位/像素
    // 110b | 18位/像素<<<
    // 111b |保留
    
    //DISPON (29H):显示打开
    //*此命令用于从显示关闭模式中恢复。 输出
    //从帧内存启用。
    //*此命令不更改帧存储器的内容。
    //*此命令不会更改任何其他状态。
    //* DISPON 和 DISPOFF 之间的 msdelay 时间至少需要120ms
    SPI_sendCommand (ST7735_DISPON);//
    在 msdelay (1)上显示;
    
    // MADCTL (36h):存储器数据访问控制
    SPI_sendCommand (ST7735_MADCTL);
    SPI_sendData (0x40-/ YVL);
    //|||||||||--未使用:0
    //|||||||-- mh:水平刷新顺序
    //|||||| 0 =从左到右
    //|||||| 1 =从右向左
    //|||||||--- RGB:RGB 与 BGR 顺序
    //||||| 0 = RGB 颜色过滤器面板
    //||||| 1 = BGR 颜色过滤器面板
    //|||||---- ML:垂直刷新顺序
    //||| 0 =从上到下
    //||| 1 =从下而上
    //|||---- MV:行/列交换
    //|------ MX:列地址顺序<<<<
    //|-------- my:行地址顺序
    
    }
    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    void set_lcd_for_write_at_X_Y (uint16_t x、uint16_t y)
    {
    //CASET (2Ah):列地址设置
    //* XS [15:0]和 XE [15:0]的值在 RAMWR
    //命令出现时被引用。
    //*每个值代表帧内存中的一列行。
    //* XS [15:0]必须始终等于或小于 XE [15:0]
    SPI_sendCommand (ST7735_CASET);//列地址集
    //写入"列地址集"命令
    SPI_sendData (0x00)的参数; //开始 MSB = XS[15:8]
    SPI_sendData (0x02 + x);//开始 LSB = XS[7:0]
    SPI_sendData (0x00); //结束 MSB = XE[15:8]
    SPI_sendData (0x81); //结束 LSB = XE[7:0]
    //将"行地址集"命令写入 LCD
    //RASET (2Bh):行地址集
    //* YS [15:0]和 YE [15:0]的值在 RAMWR
    //命令出现时被引用。
    //*每个值代表帧内存中的一行。
    //* YS [15:0]必须始终等于或小于 YE [15:0]
    SPI_sendCommand (ST7735_RASET);//行地址集
    //写入"行地址集"命令
    SPI_sendData (0x00)的参数; //开始 MSB = YS[15:8]
    SPI_sendData (0x01 + y);//开始 LSB = YS[7:0]
    SPI_sendData (0x00); //结束 MSB = YE[15:8]
    SPI_sendData (0x80); //end LSB = Ye[ 7:0]
    //将"写入数据"命令写入 LCD
    //RAMWR (2通道):Memory Write
    SPI_sendCommand (ST7735_RAMWR);//write data
    }
    //================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    void fill_LCD (uint16_t R、uint16_t G、uint16_t B)
    {
    寄存器 int
    I;
    SET_LCD_for_WRITE_AT _X_Y (0、0);
    
    //使用给定的 RGB 值填充显示
    (I = 0;I <(128 * 128);i++)
    {
    SPI_sendData (B);//蓝色
    SPI_sendData (G);//绿色
    SPI_sendData (R);//Red
    }
    }//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    
    void Put_Pixel (uint16_t x、uint16_t y、uint16_t R、uint16_t G、uint16_t B)
    {
    SET_LCD_for_write_at_X_Y (x、y);
    //Write the single pixel 的数据值
    spi_sendData (B);//=/=/===/===/=
    
    =/===/==/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=
    
    
    //从 :en.wikipedia.org/.../Midpoint_circle_algorithm
    void LCD_Circle (uint16_t x0、uint16_t y0、uint16_t radius、uint16_t R、uint16_t G、 uint16_t B)
    {
    uint16_t x =半径;
    uint16_t y = 0;
    int16_t radusError = 1 -(int16_t) x;
    
    while (x >= y)
    {
    //11 O'Clock
    Put 像素(x0 - y、y0 + x、R、G、B);
    //1 O'Clock
    Put 像素(x0 + y、y0 + x、R、G、B);
    //10 O'Clock
    Put 像素(x0 - x、y0 + y、R、G、B);
    //2 O'Clock
    Put 像素(x0 + x、y0 + y、R、G、B);
    //8 O'Clock
    Put 像素(x0 - x、y0 - y、R、G、B);
    //4 O'Clock
    Put 像素(x0 + x、y0 - y、R、G、B);
    //7 O'Clock
    Put 像素(x0 - y、y0 - x、R、G、B);
    //5 O'Clock
    Put 像素(x0 + y、y0 - x、R、G、B);
    
    Y++;
    如果(基数误差< 0)
    基数错误+=(int16_t)(2 * y + 1);
    其他
    {
    X -;
    基数错误+= 2 *(((int16_t) y -(int16_t) x)+ 1);
    }
    }
    //
    
    
    ////功能,用于配置 FIFO 模式中的 SPI A。
    //
    void initspi()
    {
    //
    //必须在配置 SPI 之前将其复位。
    //
    SPI_disableModule (SPIA_BASE);
    
    //
    // SPI 配置。 使用1MHz SPICLK 和8位字大小。
    //
    SPI_setConfig (SPIA_BASE、DEVICE_LSPCLK_FREQ、SPI_PROT_POL0PHA1、
    SPI_MODE_MASTER、1000000、8);
    //SPI_enableLoopback (SPIA_BASE);
    SPI_setEmulationMode (SPIA_BASE、SPI_emulation_stop_after_transmit);
    
    //
    //配置完成。 启用模块。
    //
    SPI_enableModule (SPIA_BASE);
    }
    
    //====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    void main (void)
    {
    uint16_t i;
    uint16_t x;
    uint16_t sub_x;
    uint16_t y;
    uint16_t sub_y;
    
    //
    //初始化设备时钟和外设
    //
    device_init();
    
    //
    //禁用引脚锁定并启用内部上拉。
    //
    DEVICE_initGPIO();
    
    //
    //初始化 LaunchPad 上用于 LCD SPI 和控制引脚的 GPIO
    //
    // LCD_SPI_MOSI
    GPIO_setPadConfig (DEVICE_GPIO_PIN_SPISIMOA、GPIO_PIN_TYPE_PULLUP);
    GPIO_setPinConfig (DEVICE_GPIO_CFG_SPISIMOA);
    GPIO_setQualificationMode (DEVICE_GPIO_PIN_SPISIMOA、GPIO_QUAL_异 步);
    
    // LCD_SPI_MISO
    GPIO_setPadConfig (DEVICE_GPIO_PIN_SPISOMIA、GPIO_PIN_TYPE_PULLUP);
    GPIO_setPinConfig (DEVICE_GPIO_CFG_SPISOMIA);
    GPIO_setQualificationMode (DEVICE_GPIO_PIN_SPISOMIA、GPIO_QUAL_异 步);
    
    // LCD_SPI_CLK
    GPIO_setPadConfig (DEVICE_GPIO_PIN_SPICLKA、GPIO_PIN_TYPE_PULLUP);
    GPIO_setPinConfig (DEVICE_GPIO_CFG_SPICLKA);
    GPIO_setQualificationMode (DEVICE_GPIO_PIN_SPICLKA、GPIO_QUAL_异 步);
    
    // LCD_SPI_CS
    GPIO_setPadConfig (DEVICE_GPIO_PIN_LCD_SPI_CS、GPIO_PIN_TYPE_PULLUP);
    GPIO_setPinConfig (DEVICE_GPIO_CFG_LCD_SPI_CS);
    GPIO_setDirectionMode (DEVICE_GPIO_PIN_LCD_SPI_CS、GPIO_DIR_MODE_OUT);
    
    // LCD_RST
    GPIO_setPadConfig (DEVICE_GPIO_PIN_LCD_RST、GPIO_PIN_TYPE_PULLUP);
    GPIO_setPinConfig (DEVICE_GPIO_CFG_LCD_RST);
    GPIO_setDirectionMode (DEVICE_GPIO_PIN_LCD_RST、GPIO_DIR_MODE_OUT);
    
    // LCD_RS
    GPIO_setPadConfig (DEVICE_GPIO_PIN_LCD_RS、GPIO_PIN_TYPE_PULLUP);
    GPIO_setPinConfig (DEVICE_GPIO_CFG_LCD_RS);
    GPIO_setDirectionMode (DEVICE_GPIO_PIN_LCD_RS、GPIO_DIR_MODE_OUT);
    
    //
    //初始化 SPI
    //
    initspi();
    
    
    //将 LCD 控制引脚驱动至一个合理的启动状态。
    LCD_RST_LOW;
    LCD_RST_HIGH;
    LCD_RST_LOW;
    LCD_RS_LOW;
    LCD_SPI_CS_HIGH;
    
    //初始化 LCD 控制器
    initialize_lcd();
    
    while (1)
    {
    //使用给定的 RGB 值填充显示
    FLOAD_LCD (0x00、0x00、0xFF);
    msdelay(1000);
    
    //画一个青色圆圈
    LCD_Circle (64、64、63、0x00、0xFF、0xFF);
    //画一个绿色圆圈
    LCD_Circle (21、64、20、0x00、0xFF、0x00);
    //画一个白色圆圈
    LCD_Circle (64、64、20、0xFF、0xFF、0xFF);
    //画一个红色圆圈
    LCD_Circle (107、64、20、0xFF、0x00、0x00);
    //画一个紫色圆圈
    LCD_Circle (64、107、16、0xFF、0x00、0xFF);
    //画一个橙色圆圈
    LCD_Circle (64、21、14、0xFF、0xA5、0x00);
    msdelay(1000);
    
    //用给定的 RGB 值填充显示
    FLOAD_LCD (0x00、0x00、0x00);
    msdelay(1000);
    
    for (i=2;i<60;i+=2)
    {
    LCD_Circle (i+2、64、i、i<<2、0xff-(i<2)、0x00);
    }
    msdelay(1000);
    
    //用给定的 RGB 值填充显示
    FLOAD_LCD (0xFF、0x00、0x00);
    msdelay(1000);
    
    //编写一个8x8棋盘
    对于(x=0;x<=15;x++)
    {
    for (y=0;y<=15;y++)
    {
    for (sub_x=0;sub_x<=7;sub_x++)
    for (sub_y=0;sub_y<=7;sub_y++)
    if ((((x&0x01)&&!(y&0x01))||(!(x&0x01)&&(y&0x01))
    Put 像素(((x<<3)+sub_x、(y<<<<3)+sub_y、0x00、0x00、0x00);
    其他
    //Put 像素(((x<<3)+sub_x、(y<<3)+sub_y、0xFF、0xFF-(x<4)、0xFF-(y<4)));
    PGE_Pixel (((x<<3)+sub_x、(y<<3)+sub_y、0xFF、0xFF、0xFF);
    }
    }
    msdelay(1000);
    }
    }
    
    
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Gus、

    感谢您提供此示例代码! 这很有帮助。

    顺便说一下、您知道  该示例何时会在 C2000Ware 中发布吗?

    此致

    Rayna