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.

[参考译文] TMS320F280025C:LCD 显示屏 JHD 162A

Guru**** 2455560 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1296702/tms320f280025c-lcd-display-jhd-162a

器件型号:TMS320F280025C

#include "device.h"
#include "driverlib.h"

// Function Prototypes
//
void setup1GPIO(void);
void InitializeLCD(void);
void WriteCommandLCD(unsigned char);
void DisplayLCD(char,char*);
void SendByte(unsigned char );
void LCDDelay();
void WriteDataLCD(unsigned char);
//
// Main
//
void main(void)
{
    //
    // Initializes system control, device clock, and peripherals
    //
    Device_init();
    


    //
    // Initializes PIE and clear PIE registers. Disables CPU interrupts.
    // and clear all CPU interrupt flags.
    //
    Interrupt_initModule();

    //
    // Initialize the PIE vector table with pointers to the shell interrupt
    // Service Routines (ISR).
    //
    Interrupt_initVectorTable();



    //
    // This example is a basic pinout
    //
    setup1GPIO();
    InitializeLCD();
    DisplayLCD(1,ragavendra);


}

//
// setup1GPIO - Is an example that demonstrates the basic pinout
//
void setup1GPIO(void)
{
    EALLOW;

           GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; // RS
           GpioCtrlRegs.GPADIR.bit.GPIO0 = 1;   // GPIO0 = output RS

             GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 0; // RW
             GpioCtrlRegs.GPADIR.bit.GPIO1= 1;   // GPIO1 = output  RW

         

             GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0; // EN
             GpioCtrlRegs.GPADIR.bit.GPIO2 = 1;   // GPIO2= output


             // Initialize GPIO for data bus pins (D0-D7)
             GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 0; // D0
             GpioCtrlRegs.GPADIR.bit.GPIO3 = 1;   // GPIO3= output

             GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 0; // D1
             GpioCtrlRegs.GPADIR.bit.GPIO4 = 1;   // GPIO4 = output


             GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 0; // D2
             GpioCtrlRegs.GPADIR.bit.GPIO5 = 1;   // GPIO5 output

             GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 0; // D3
             GpioCtrlRegs.GPADIR.bit.GPIO6 = 1;   // GPIO6 = output

             GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 0; // D4
             GpioCtrlRegs.GPADIR.bit.GPIO7 = 1;   // GPIO6 = output

             GpioCtrlRegs.GPAMUX1.bit.GPI08 = 0; // D5
             GpioCtrlRegs.GPADIR.bit.GPIO8 = 1;   // GPIO6 = output

             GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 0; // D6
             GpioCtrlRegs.GPADIR.bit.GPIO10 = 1;   // GPIO6 = output

             GpioCtrlRegs.GPAMUX1.bit.GPIO11 = 0; // D7
             GpioCtrlRegs.GPADIR.bit.GPIO11 = 1;   // GPIO6 = output

        EDIS;

}


void InitializeLCD(void)
{
    GpioDataRegs.GPASET.bit.GPIO2 = 1;
    //GPIO_setHigh(myGpio, E);
     LCDDelay();
     LCDDelay();
     LCDDelay();
     LCDDelay();
    WriteCommandLCD(0x38);            //Command to select 8 bit interface
     LCDDelay();

    WriteCommandLCD(0x38);            //Command to select 8 bit interface
    LCDDelay();                        //Small delay

    WriteCommandLCD(0x38);            //Command to select 8 bit interface
    LCDDelay();

    WriteCommandLCD(0x08);            //Command to off cursor,display off
    WriteCommandLCD(0x01);            //Command to Clear LCD
     LCDDelay();
    WriteCommandLCD(0x06);            //Command for setting entry mode

    WriteCommandLCD(0x0f);            //Command to on cursor,blink cursor
    WriteCommandLCD(0x02);            //Command return the cursor to home
     LCDDelay();
}


void WriteCommandLCD(unsigned char CommandByte)
{
    //GpioDataRegs.GPACLEAR.bit.GPIO26 = 1;
    GpioDataRegs.GPACLEAR.bit.GPIO0=1;
    //GPIO_setLow(myGpio, RS);        //Clear RS pin to write command
    SendByte(CommandByte);
    LCDDelay();                     //Small delay
}

void WriteDataLCD(unsigned char CommandByte)
{
    GpioDataRegs.GPACLEAR.bit.GPIO0=1;
    //GPIO_setLow(myGpio, RS);        //Clear RS pin to write command
    SendByte(CommandByte);
    LCDDelay();                     //Small delay
}

void DisplayLCD(char LineNumber,char *Message)
{
    int a;
    if(LineNumber ==1)
    {   //First Line
        WriteCommandLCD(0x80);      //Select the first line
    }
    else
    {   //Second line
        WriteCommandLCD(0xc0);      //Select the second line
    }
    for(a=0;a<16;a++)
    {
        WriteDataLCD(*Message);     //Display a character
        Message++;                  //Increment pointer
    }
    return;
}

我已经为 JHD 162A LCD 显示屏编写了这个代码...但是在这个代码中 我有 wirtten 寄存器指令、例如 GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 0;、
GpioCtrlRegs.GPADIR.bit.GPIO6 = 1;对于引脚初始化、但在我编译该代码时、会显示如下错误  

描述资源路径位置类型
#20标识符"GpioCtrlRegs"未定义
#20标识符"GpioDataRegs"未定义  
#20标识符"GpioDataRegs"未定义
#20标识符"GpioDataRegs"未定义  
#20标识符"GpioDataRegs"未定义
#20标识符"ragavendra "未定义
gmake:***[LCD displayyy.obj]错误1  
gmake:由于错误、未重制目标"all"。 LED 显示器 C/C++问题

that...it 需要任何头文件的原因是什么?请更正该代码  

我还有另一个问题、

GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0;  
GpioCtrlRegs.GPADIR.bit.GPIO2 = 1;

GpioDataRegs.GPACLEAR.bit.GPIO4 =1;

GpioDataRegs.GPASET.bit.GPIO4 = 1;

要使用说明、我们是否需要为项目添加任何库……并告诉我 我们必须为 TMS320F2280025c 板包含哪种类型的库?

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

    尊敬的 Ragavendra:

    感谢您的提问。 这看起来您试图使用"device_support"类型的宏、但实际上是导入了 driverlib 代码。

    您可以#包含"device_support"文件夹中的文件(请参阅该文件夹中的示例以了解如何正确#包含宏)

    此致、

    文斯