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.

[参考译文] CCS/TMS320F28377S:将 ST7567 LCD 与 tms320f28377s 微控制器相连

Guru**** 2538930 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/599811/ccs-tms320f28377s-interfacing-st7567-lcd-with-tms320f28377s-microcontroller

器件型号:TMS320F28377S
Thread 中讨论的其他器件:controlSUITE

工具/软件:Code Composer Studio

尊敬的所有人:

我正在尝试连接基于 ST7567的图形 LCD-tms320f28377s e2e.ti.com/.../TG12864H3_2D00_03A-EN_5F00_V1.1.pdf。 我将此 LCD 与带有 PRallel 连接的 TMS320相集成、它工作正常。 但是、当我尝试使用 SPI 接口(使用软件 SPI) 时、显示屏不显示任何内容。 我用 MOSI、SCLK、CS、RS (A0)在四线制模式下连接 LCD。 如数据表中所示(请参阅附件)。 我的代码如下所示。 按照 st7567控制器数据表中的说明、我在 D7上连接 MOSI、在 d6上连接 SCLK。 其他连接也正确。 我想在 LCD 的初始化过程中会出现问题

const unsigned char A12[95][6]=
 {
 {0x0、0x0、0x0、0x0、0x0、0x0}、      //
 {0x0、0x0、0x4F、0x0、0x0、0x0}、      //!
 {0x0、0x7、0x0、0x7、0x0、0x0}、      //"
 {0x14、0x7F、0x14、0x7F、0x14、0x0}、   //
 {0x24、0x2A、0x7F、0x2A、0x12、0x0}、   //$
 {0x23、0x13、0x8、0x64、0x62、0x0}、   //%
 {0x36、0x49、0x55、0x22、0x50、0x0}、   //&
 {0x0、0x5、0x3、0x0、0x0、0x0}、      //
 {0x0、0x1C、0x22、0x41、0x0、0x0}、   //(
 {0x0、0x41、0x22、0x1C、0x0、0x0}、   //)
 {0x14、0x8、0x3E、0x8、0x14、0x0}、   //*
 {0x8、0x8、0x3E、0x8、0x8、0x0}、      //+
 {0x0、0x50、0x30、0x0、0x0、0x0}、   //、
 {0x8、0x8、0x8、0x8、0x8、0x0}、      //-
 {0x0、0x60、0x60、0x0、0x0、0x0}、   //。
 {0x20、0x10、0x8、0x4、0x2、0x0}、   ///
 {0x3E、0x51、0x49、0x45、0x3E、0x0}、   //0
 {0x0、0x42、0x7F、0x40、0x0、0x0}、   // 1.
 {0x42、0x61、0x51、0x49、0x46、0x0}、   /2
 {0x21、0x41、0x45、0x4B、0x31、0x0}、   // 3.
 {0x18、0x14、0x12、0x7F、0x10、0x0}、   //4
 {0x27、0x45、0x45、0x45、0x39、0x0}、   //5
 {0x3C、0x4A、0x49、0x49、0x30、0x0}、   //6
 {0x1、0x71、0x9、0x5、0x3、0x0}、      //7
 {0x36、0x49、0x49、0x49、0x36、0x0}、   //8
 {0x6、0x49、0x49、0x29、0x1E、0x0}、   //9
 {0x0、0x36、0x36、0x0、0x0、0x0}、   //:
 {0x0、0x56、0x36、0x0、0x0、0x0}、   //;
 {0x8、0x14、0x22、0x41、0x0、0x0}、   //<
 {0x14、0x14、0x14、0x14、0x14、0x0}、   //=
 {0x0、0x41、0x22、0x14、0x8、0x0}、   //>
 {0x2、0x1、0x51、0x9、0x6、0x0}、      //?
 {0x32、0x49、0x79、0x41、0x3E、0x0}、   //@
 {0x7E、0x11、0x11、0x11、0x7E、0x0}、   //A
 {0x7F、0x49、0x49、0x49、0x36、0x0}、   //B
 {0x3E、0x41、0x41、0x41、0x22、0x0}、   /C
 {0x7F、0x41、0x41、0x22、0x1C、0x0}、   //D
 {0x7F、0x49、0x49、0x49、0x41、0x0}、   //E
 {0x7F、0x9、0x9、0x9、0x1、0x0}、      //F
 {0x3E、0x41、0x49、0x49、0x7A、0x0}、   //G
 {0x7F、0x8、0x8、0x8、0x7F、0x0}、   //H
 {0x0、0x41、0x7F、0x41、0x0、0x0}、   //I
 {0x20、0x40、0x41、0x3F、0x1、0x0}、   //J
 {0x7F、0x8、0x14、0x22、0x41、0x0}、   //K
 {0x7F、0x40、0x40、0x40、0x40、0x0}、   //L
 {0x7F、0x2、0xC、0x2、0x7F、0x0}、   //M
 {0x7F、0x4、0x8、0x10、0x7F、0x0}、   //N
 {0x3E、0x41、0x41、0x41、0x3E、0x0}、   //操作
 {0x7F、0x9、0x9、0x9、0x6、0x0}、      //P
 {0x3E、0x41、0x51、0x21、0x5E、0x0}、   //Q
 {0x7F、0x9、0x19、0x29、0x46、0x0}、   //R
 {0x46、0x49、0x49、0x49、0x31、0x0}、   //S
 {0x1、0x1、0x7F、0x1、0x1、0x0}、      //T
 {0x3F、0x40、0x40、0x40、0x3F、0x0}、   //U
 {0x1F、0x20、0x40、0x20、0x1F、0x0}、   //V
 {0x3F、0x40、0x38、0x40、0x3F、0x0}、   //W
 {0x63、0x14、0x8、0x14、0x63、0x0}、   //X
 {0x7、0x8、0x70、0x8、0x7、0x0}、      //Y
 {0x61、0x51、0x49、0x45、0x43、0x0}、   //Z
 {0x0、0x7F、0x41、0x41、0x0、0x0}、   //
 {0x15、0x16、0x7C、0x16、0x15、0x0}、   //
 {0x0、0x41、0x41、0x7F、0x0、0x0}、   //
 {0x4、0x2、0x1、0x2、0x4、0x0}、      //^
 {0x40、0x40、0x40、0x40、0x40、0x0}、   //
 {0x0、0x1、0x2、0x4、0x0、0x0}、      //
 {0x20、0x54、0x54、0x54、0x78、0x0}、   //A
 {0x7F、0x48、0x44、0x44、0x38、0x0}、   //b
 {0x38、0x44、0x44、0x44、0x20、0x0}、   /c
 {0x38、0x44、0x44、0x48、0x7F、0x0}、   //d
 {0x38、0x54、0x54、0x54、0x18、0x0}、   //e
 {0x8、0x7E、0x9、0x1、0x2、0x0}、      //f
 {0xC、0x52、0x52、0x52、0x3E、0x0}、   //g
 {0x7F、0x8、0x4、0x4、0x78、0x0}、   //h
 {0x0、0x44、0x7D、0x40、0x0、0x0}、   //I
 {0x20、0x40、0x44、0x3D、0x0、0x0}、   // j
 {0x7F、0x10、0x28、0x44、0x0、0x0}、   //k
 {0x0、0x41、0x7F、0x40、0x0、0x0}、   //l
 {0x7C、0x4、0x18、0x4、0x78、0x0}、   //m
 {0x7C、0x8、0x4、0x4、0x78、0x0}、   // n
 {0x30、0x48、0x48、0x48、0x30、0x0}、   // o
 {0x7C、0x14、0x14、0x14、0x8、0x0}、   //p
 {0x8、0x14、0x14、0x18、0x7C、0x0}、   // q
 {0x7C、0x8、0x4、0x4、0x8、0x0}、      //r
 {0x48、0x54、0x54、0x54、0x20、0x0}、   /s
 {0x4、0x3F、0x44、0x40、0x20、0x0}、   //t
 {0x3C、0x40、0x40、0x20、0x7C、0x0}、   //u
 {0x1C、0x20、0x40、0x20、0x1C、0x0}、   // v
 {0x3C、0x40、0x30、0x40、0x3C、0x0}、   // w
 {0x44、0x28、0x10、0x28、0x44、0x0}、   // x
 {0xC、0x50、0x50、0x50、0x3C、0x0}、   //y
 {0x44、0x64、0x54、0x4C、0x44、0x0}、   //z
 {0x0、0x8、0x36、0x41、0x0、0x0}、   //{
 {0x0、0x0、0x7F、0x0、0x0、0x0}、      //|
 {0x0、0x41、0x36、0x8、0x0、0x0}      //}
 };

 ///----------------------------------
 //由 LCD Assistant 生成的文件
 // en.radzio.dxp.pl/.../
 ///----------------------------------


 const unsigned char butter[128][8]=
 {
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x01、0xE0、0x00、0x00、0x00、
    0x00、0x00、0x00、0x02、0x10、0x00、0x00、0x00、
    0x00、0x00、0x00、0x06、0x10、0x00、0x00、0x00、
    0x00、0x00、0x00、0x04、0x10、0x00、0x00、0x00、
    0x00、0x00、0x00、0x04、0x10、0x00、0x00、0x00、
    0x00、0x00、0x00、0x08、0x10、0x00、0x00、0x00、
    0x00、0x00、0x00、0x08、0x10、0x00、0x00、0x00、
    0x00、0x00、0x00、0x09、0xF8、0x00、0x00、0x00、
    0x00、0x00、0x00、0x0B、0xF8、0x00、0x00、0x00、
    0x00、0x00、0x00、0x0A、0x24、0x00、0x00、0x00、
    0x00、0x00、0x00、0x08、0x24、0x00、0x00、0x00、
    0x00、0x00、0x00、0x04、0x24、0x00、0x00、0x00、
    0x00、0x00、0x00、0x04、0x64、0x00、0x00、0x00、
    0x00、0x00、0x00、0x08、0x44、0x00、0x00、0x00、
    0x00、0x00、0x00、0x08、0x44、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x88、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x10、0x88、0x00、0x00、0x00、
    0x00、0x00、0x00、0x11、0x18、0x00、0x00、0x00、
    0x00、0x00、0x00、0x12、0x10、0x00、0x00、0x00、
    0x00、0x00、0x00、0x02、0x20、0x00、0x00、0x00、
    0x00、0x00、0x00、0x04、0x40、0x00、0x00、0x00、
    0x00、0x00、0x00、0x0C、0x80、0x00、0x00、0x00、
    0x00、0x00、0x01、0xFB、0x80、0x00、0x00、0x00、
    0x00、0x00、0x03、0x36、0x00、0x00、0x00、0x00、
    0x00、0x00、0x02、0x9C、0x00、0x1F、0xF8、0x00、
    0x00、0x00、0x04、0x30、0x00、0xFF、0xFE、0x00、
    0x00、0x00、0x04、0xD0、0x03、0xFF、0xC7、0x80、
    0x00、0x00、0x05、0xE0、0x0F、0xF0、0xFD、0xC0、
    0x00、0x00、0x07、0x30、0x3E、0x38、0x7F、0xE0、
    0x00、0x00、0x07、0x10、0x7E、0x1C、0x3F、0xF0、
    0x00、0x00、0x07、0x10、0xFF、0x8F、0xFD、0xf8、
    0x00、0x00、0x07、0x21、0xFF、0x87、0x30、0x00、
    0x00、0x00、0x0D、0xE7、0xC3、0xEF、0x60、0x00、
    0x00、0x00、0x08、0x4F、0x03、0xDC、0xC0、0x00、
    0x00、0x00、0x08、0x1C、0x03、0x38、0xC0、0x00、
    0x00、0x00、0x08、0x78、0x06、0x21、0x80、0x00、
    0x00、0x00、0x18、0x7F、0xFE、0x41、0x00、0x00、
    0x00、0x00、0x18、0x7F、0xFE、0x83、0x00、0x00、
    0x00、0x00、0x18、0x7F、0xFF、0xFE、0x00、0x00、
    0x00、0x00、0x1F、0xFF、0xFF、0xFE、0x00、0x00、
    0x00、0x00、0x27、0xB8、0xF1、0xFE、0x00、0x00、
    0x00、0x00、0x20、0xF0、0x39、0xFC、0x00、0x00、
    0x00、0x00、0x60、0xF8、0x9C、0xFE、0x00、0x00、
    0x00、0x00、0x61、0xFF、0x3C、0x6f、0x00、0x00、
    0x00、0x00、0x61、0x3E、0x7C、0x77、0x80、0x00、
    0x00、0x00、0x61、0x00、0xFC、0x33、0xC0、0x00、
    0x00、0x00、0xE3、0x41、0xFE、0x30、0xE0、0x00、
    0x00、0x01、0x9E、0x3F、0xE7、0x18、0xF0、0x00、
    0x00、0x01、0x9E、0x0F、0x81、0xD9、0xF8、0x00、
    0x00、0x07、0x04、0x00、0x00、0x0D、0x18、0x00、
    0x00、0x7F、0x0C、0x70、0x1F、0x8C、0x4C、0x00、
    0x00、0x7E、0x0C、0x38、0x3F、0xF4、0x26、0x00、
    0x00、0x7C、0x1D、0x0C、0x44、0xFE、0x96、0x00、
    0x00、0x40、0x35、0xCE、0x04、0xBE、0x6B、0x00、
    0x00、0x70、0x37、0xE7、0x06、0x4E、0x25、0x80、
    0x00、0x3F、0xF3、0xF3、0x82、0x47、0x2C、0x80、
    0x00、0x1F、0xF3、0x9B、0x82、0x21、0x3F、0xC0、
    0x00、0x00、0xFB、0x8D、0xC1、0x20、0x7F、0xC0、
    0x00、0x00、0xF9、0x85、0xFC、0x10、0xFF、0xE0、
    0x00、0x01、0xF9、0xC0、0xFE、0x01、0xFF、0xE0、
    0x00、0x01、0xF5、0xC2、0xF1、0x73、0xE0、0xF0、
    0x00、0x01、0x75、0xC0、0x70、0x3F、0x80、0x70、
    0x00、0x01、0x75、0xE0、0x70、0x1F、0x00、0x30、
    0x00、0x03、0x7D、0xF0、0x70、0x1F、0x00、0x08、
    0x00、0x03、0x7C、0xFD、0xE0、0x3E、0x00、0x00、
    0x00、0x02、0x7C、0xFF、0xC0、0xFC、0x00、0x00、
    0x00、0x06、0xFC、0xEF、0x83、0xF8、0x00、0x00、
    0x00、0x07、0x78、0x4F、0xFF、0xF0、0x00、0x00、
    0x00、0x07、0x78、0x47、0xFF、0xE0、0x00、0x00、
    0x00、0x0E、0xFC、0x15、0xFF、0x80、0x00、0x00、
    0x00、0x0E、0x3E、0x54、0x3E、0x00、0x00、0x00、
    0x00、0x0A、0x3F、0x94、0x00、0x00、0x00、0x00、
    0x00、0x1E、0x33、0x16、0x00、0x00、0x00、0x00、
    0x00、0x1F、0xA0、0x16、0x00、0x00、0x00、0x00、
    0x00、0x38、0x64、0x1E、0x00、0x00、0x00、0x00、
    0x00、0x37、0xE0、0x1E、0x00、0x00、0x00、
    0x00、0x7F、0xEC、0x1E、0x00、0x00、0x00、0x00、
    0x00、0x7F、0xFC、0x1E、0x00、0x00、0x00、0x00、
    0x00、0xE0、0x7C、0x1E、0x00、0x00、0x00、0x00、
    0x00、0xC0、0x7D、0x3C、0x00、0x00、0x00、0x00、
    0x01、0x80、0x67、0xF4、0x00、0x00、0x00、0x00、
    0x03、0x80、0xC6、0x44、0x00、0x00、0x00、0x00、
    0x07、0x00、0xC3、0x0C、0x00、0x00、0x00、0x00、
    0x0E、0x00、0xC1、0xAC、0x00、0x00、0x00、0x00、
    0x1A、0x00、0x80、0x08、0x00、0x00、0x00、0x00、0x00、
    0x1C、0x01、0x9C、0xD8、0x00、0x00、0x00、0x00、
    0x34、0x01、0xF3、0x98、0x00、0x00、0x00、0x00、
    0x3C、0x03、0xE7、0x30、0x00、0x00、0x00、0x00、
    0x68、0x03、0xCE、0x70、0x00、0x00、0x00、0x00、
    0x58、0x07、0x8F、0xE0、0x00、0x00、0x00、0x00、
    0x70、0x07、0x0F、0xE0、0x00、0x00、0x00、0x00、
    0x30、0x0F、0xFF、0xC0、0x00、0x00、0x00、0x00、
    0x00、0x0F、0xFF、0x80、0x00、0x00、0x00、0x00、0x00、
    0x00、0x1F、0xFF、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x1F、0x9C、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x3C、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x38、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x70、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0xF0、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0xF0、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x01、0xE0、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x03、0xA0、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x03、0x60、0x00、0x00、0x00、0x00、0x00、0x00、
    0x03、0xE0、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x07、0x40、0x00、0x00、0x00、0x00、0x00、0x00、
    0x07、0xC0、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x05、0xC0、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x04、0xC0、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x07、0x80、0x00、0x00、0x00、0x00、0x00、0x00、
    0x07、0x80、0x00、0x00、0x00、0x00、0x00、0x00、
    0x07、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
    0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、
 };


void LCD_DATA_OUT (无符号字符数据)
 {
  SpiaRegs.SPITXBUF=(DATA<8);//发送数据

  美国(500);

  返回;
 }

 void lcd_write_cmd (unsigned char cmd)
 {
   LCD_RS_L         美国(50);

   LCD_CS_L           美国(50);

   //lcd_rw_L          美国(50);
   SOFT_SPI_DATA (cmd);  US (50);
   //lcd_data_out (cmd);   us (500);

   //lcd_rw_H;           美国(50);

   LCD_CS_H;              美国(50);

   //LCD_Rs_H             美国(500);

   返回;
 }

 void lcd_write_data (无符号字符数据)
 {
   LCD_RS_H          美国(50);

   LCD_CS_L           美国(50);

   //lcd_rw_L         美国(50);

   SOFT_SPI_DATA (DATA);   US (50);

   //lcd_data_out (data);   us (500);

   //lcd_rw_H;           美国(50);

   LCD_CS_H;              美国(50);

   //LCD_Rs_L;             美国(500);

   返回;
 }

 void LCD_init (void)
 {
 // C86_H;    us (50);      //启用 SPI 模式

 // LCD_RW_H        美国(200);

  //LCD_EN;   US (200);

  LCD_RST_H;   ms (20);     //设置 RST

  LCD_RST_L;  ms (50);ms (50);ms (50)

  LCD_RST_H;   ms (20);     //设置 RST

  LCD_RS_L   us (50);

  //LCD_CS_L;  US (50);


  /*
  LCD_WRITE_CMD (0xA0);// ADC 选择
    LCD_WRITE_CMD (0xA2);//设置 BIAS=1/9
    LCD_WRITE_CMD (0xCF);// COM 扫描方向(C63-C0)
    LCD_WRITE_CMD (0x2C);//打开 CONTROL1   BOOST
    LCD_WRITE_CMD (0x2E);//   110上的电源控制2稳压器
    LCD_WRITE_CMD (0x2F);//电源控制3   后继
    LCD_WRITE_CMD (0x26);//稳压器 RESISOR 选择 R2 R1 R0
    LCD_WRITE_CMD (0x81);//设置基准电压模式//????
    LCD_WRITE_CMD (0x17);//设置基准电压寄存器 C5 C4 C3 C2 C1 C0:010111 A=17H
    LCD_WRITE_CMD (0xA4);//显示 关闭
    //LCD_WRITE_CMD (0xA7);//正常显示
    LCD_WRITE_CMD (0xA6);//正常显示
    LCD_WRITE_CMD (0xB0);//第一页
    LCD_WRITE_CMD (0x40);//初始起始行
    LCD_WRITE_CMD (0x10);//设置列 ADDR (H)
    LCD_WRITE_CMD (0x00);//设置列 ADDR (L)
  LCD_WRITE_CMD (0xAF);//显示 打开
*

/* LCD_WRITE_CMD (0xA0);   // ADC 选择
  LCD_WRITE_CMD (0xA2);   //设置 BIAS=1/9、请勿使用1/7
  LCD_WRITE_CMD (0xCF);   // COM 扫描方向(C63-C0)
  LCD_WRITE_CMD (0x2C);   //打开 CONTROL1   BOOST
  LCD_WRITE_CMD (0x2E);   //   110上的电源控制2稳压器
  LCD_WRITE_CMD (0x2F);   //电源控制3   后继
  LCD_WRITE_CMD (0x25);   //稳压器 RESISOR 选择 R2 R1 R025  // 25
  LCD_WRITE_CMD (bbf);      //设置基准电压模式//????用于 LCD、EV 电压的合同调整
  LCD_WRITE_CMD (0x07);   //设置基准电压模式//?????、用于 LCD、EV 电压的合同调整
  LCD_WRITE_CMD (0x17);   //设置基准电压寄存器 C5 C4 C3 C2 C1 C0:010111 A=17H
  LCD_WRITE_CMD (0xA4);   //显示 关闭
  LCD_WRITE_CMD (0xA6);      //正常显示
  LCD_WRITE_CMD (0xB0);      //第一页
  LCD_WRITE_CMD (0x40);      //初始起始行
  LCD_WRITE_CMD (0x10);      //设置列 ADDR (H)
  LCD_WRITE_CMD (0x00);   //设置列 ADDR (L)
  LCD_WRITE_CMD (0xAF);   //显示 打开
*

 LCD_WRITE_CMD (0xE2);   // ADC 选择
 LCD_WRITE_CMD (0xA3);   //设置 BIAS=1/9、请勿使用1/7
 LCD_WRITE_CMD (0xAF);   // COM 扫描方向(C63-C0)
 LCD_WRITE_CMD (0xC8);
 LCD_WRITE_CMD (0x22);
 LCD_WRITE_CMD (0x2C);   //打开 CONTROL1   BOOST
 LCD_WRITE_CMD (0x2E);   //   110上的电源控制2稳压器
 LCD_WRITE_CMD (0x2F);   //电源控制3   后继
 LCD_WRITE_CMD (0x25);   //稳压器 RESISOR 选择 R2 R1 R025  // 25
 LCD_WRITE_CMD (bbf);   //设置基准电压模式//????用于 LCD、EV 电压的合同调整
 LCD_WRITE_CMD (0x07);   //设置基准电压模式//?????、用于 LCD、EV 电压的合同调整
 LCD_WRITE_CMD (0x17);   //设置基准电压寄存器 C5 C4 C3 C2 C1 C0:010111 A=17H
 LCD_WRITE_CMD (0xA4);   //显示 关闭
 LCD_WRITE_CMD (0xA6);   //正常显示
 LCD_WRITE_CMD (0xB0);   //第一页
 LCD_WRITE_CMD (0x40);   //初始起始行
 LCD_WRITE_CMD (0x10);   //设置列 ADDR (H)
 LCD_WRITE_CMD (0x00);   //设置列 ADDR (L)
 LCD_WRITE_CMD (0xAF);   //显示 于*/


/*
  LCD_WRITE_CMD (0xA2);//设置 BIAS=1/9
  LCD_WRITE_CMD (0xCF);// COM 扫描方向(C63-C0)
  LCD_WRITE_CMD (0x2C);//打开 CONTROL1   BOOST
  LCD_WRITE_CMD (0x2E);//   110上的电源控制2稳压器
  LCD_WRITE_CMD (0x2F);//电源控制3   后继
  LCD_WRITE_CMD (0x25);//稳压器 RESISOR 选择 R2 R1 R0
  LCD_WRITE_CMD (0x81);//设置基准电压模式//????
  LCD_WRITE_CMD (0x17);//设置基准电压寄存器 C5 C4 C3 C2 C1 C0:010111 A=17H
  LCD_WRITE_CMD (0xA4);//显示 关闭
       //LCD_WRITE_CMD (0xA7);//正常显示
  LCD_WRITE_CMD (0xA6);//正常显示
  LCD_WRITE_CMD (0xB0);//第一页
  LCD_WRITE_CMD (0x40);//初始起始行
  LCD_WRITE_CMD (0x10);//设置列 ADDR (H)
  LCD_WRITE_CMD (0x00);//设置列 ADDR (L)
  LCD_WRITE_CMD (0xAF);//显示 打开
*


 返回;
 }

 void LCD_on (void)
 {
  LCD_WRITE_CMD (0xAE);
  返回;
 }

 void LCD_off (void)
 {
  LCD_WRITE_CMD (0xAF);
  返回;
 }

 void all_pixel_on1 (void)
 {
  LCD_WRITE_CMD (0xA5);
  返回;
 }

 void all_pixel_off1 (void)
 {
 LCD_WRITE_CMD (0xA4);
 返回;
 }

 void goto_Row1 (unsigned int y)
 {
    unsigned char 模式;
   pattern = 0xB0 |(y 和0xBF);//将行地址放在数据端口集命令上
  LCD_WRITE_CMD (图形);
  返回;;
 }

 void goto_col1 (无符号 int x)
 {
  unsigned int 模式;
  pattern=((0xF0&x)>>4)|0x10;
  LCD_WRITE_CMD (图形);   //设置高字节列命令
  pattern=((0x0F&x))|0x00;
  LCD_WRITE_CMD (图形);   //设置低字节列命令;
  返回;
 }

 void goto_xy1 (unsigned int x、unsigned int y)
 {
  goto_col1 (x);
  美国(10);
  goto_Row1 (y);
  美国(10);
  返回;
 }

 void glcd_write1 (无符号字符 b)
 {
   LCD_WRITE_DATA (b);  //将数据放在数据端口上
    美国(10);
 }

 void LCD_clear (void)(空)
 {
    unsigned char i = 0、j = 0;

    LCD_SET_PAGE (PAGE1、0);      //初始页、col

    对于(I = 0;I < 8;I ++)
    {
    对于(j = 0;j < 128;j ++)
       LCD_WRITE_DATA (0x00);

    LCD_SET_PAGE (Page1 + I + 1、0);   //递增页面
    }
    LCD_SET_PAGE (PAGE1、0);      //初始页、col
 }

 void lcd_set_page (unsigned char page、unsigned char col)
 {
   unsigned char msb、lsb;
    MSB      =   (((col & 0xF0)>> 4)| 0x10);
    LSB      =   (Col & 0x0F);
    LCD_WRITE_CMD (PAGE);
    LCD_WRITE_CMD (MSB);
    LCD_WRITE_CMD (lsb);
 }

 空 Display_Page1 (空)
 {
 //co/const unsigned char * msg1 ={"   嗨!!!!    "};
 const unsigned char * msg1 ={"123456789101112131411819"};

  PAGE = Page1;
  COL =   COL1;
  LCD_SET_PAGE (PAGE、COL);      //初始页、col

  while (* msg1!='\0')
    {
     lcd_print_font1 (* msg1);
     msg1++;
    }
 }

 空 Display_Page2 (空)
 {
 const unsigned char * msg2 ={"  Shakti pump  "};


       PAGE = Page2;
       COL =   COL1;
       LCD_SET_PAGE (PAGE、COL);      //初始页、col
       while (* msg2!='\0')
       {
          lcd_print_font1 (* msg2);
          msg2++;
       }
 }

 空 Display_Page3 (空)
 {
 const unsigned char * msg3 =  {"  PUMING life  "};


       PAGE = Page3;
       COL =   COL1;
       LCD_SET_PAGE (PAGE、COL);      //初始页、col
       while (* msg3!='\0')
       {
          lcd_print_font1 (* msg3);
          msg3++;
       }
 }

 空 Display_Page4 (空)
 {
 const unsigned char * msg4 =  {"   Indore   "};


       page = page4;
       COL =   COL1;
       LCD_SET_PAGE (PAGE、COL);      //初始页、col
       while (* msg4!='\0')
       {
          lcd_print_font1 (* msg4);
          msg4++;
       }
 }
 空 Display_Page5 (空)
 {
 const unsigned char * msg5 =  {"};


       page = page5;
       COL =   COL1;
       LCD_SET_PAGE (PAGE、COL);      //初始页、col
       while (* msg5!='\0')
       {
          lcd_print_font1 (* msg5);
          msg5++;
       }
 返回;
 }
 空 Display_Page6 (空)
 {
 const unsigned char * msg6 =  {"  all the best "};


       page = page6;
       COL =   COL1;
       LCD_SET_PAGE (PAGE、COL);      //初始页、col
       while (* msg6!='\0')
       {
          lcd_print_font1 (* msg6);
          msg6++;
       }
 返回;
 }

 空 Display_Page7 (空)
 {
 const unsigned char * msg7 =  {"   、谢谢    您"};


       page = page7;
       COL =   COL1;
       LCD_SET_PAGE (PAGE、COL);      //初始页、col
       while (* msg7!='\0')
       {
          lcd_print_font1 (* msg7);
          msg7++;
       }
 返回;
 }

 空 Display_Page8 (空)
 {
 const unsigned char * msg8 =  {"   bye  "};

       page = page8;
       COL =   COL1;
       LCD_SET_PAGE (PAGE、COL);      //初始页、col

       while (* msg8!='\0')
       {
          lcd_print_font1 (* msg8);
          msg8++;
       }

 返回;
 }

 void lcd_print_font1 (无符号字符数据)
 {
    unsigned char i、j、index;

    静态 unsigned char page_var =   Page1;

    静态无符号字符 COL_var =   col1;

    index   = data - 32;

    lcd_page_col_check_font1 ();

    对于(I = 0;I < 6;I++)
    LCD_WRITE_DATA (A12[索引][i]);

    COL += 1;
 返回;
 }

 void lcd_page_col_check_font1 (void)
 {
    如果(COL >= 22)
    {
       PAGE += 1;
       if (page      >=   page8 + 1)
          lcd_clear();

       COL   =   COL1;

       LCD_SET_PAGE (PAGE、COL);      //初始页、col
    }

  返回;
 }

 void SetSPage (void)(空)
 {
    PAGE= PAGE1;
    LCD_WRITE_CMD (PAGE);      //设置页地址
    LCD_WRITE_CMD (0x10);      //设置 COLOMn addr MSB
    LCD_WRITE_CMD (0x00);      //设置 COLUMN addr LSB
 }

 void display_image (void)
 {
 DispImage (newlogo2);
 返回;
 }

 void DispImage (无符号字符*AData)
 {
    int row、col、col1、row1=1024;
       for (row=7;row>=0;row---)
       {
          row1=Row1-1;
          col1 =行1;
          for (col=127;col>=0;col---)
          {
             LCD_WRITE_DATA (AData[col1]);
             col1=col1-8;
          }
          Page++;
          LCD_WRITE_CMD (PAGE);
          LCD_WRITE_CMD (0x10);
          LCD_WRITE_CMD (0x00);
       }
 }

 void display_output_pin (void)
 {

  /********* LCD 数据输出 /
  GPIO_SetupPinMux (12、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (12、GPIO_OUTPUT、GPIO_PushPull);                //D0

  GPIO_SetupPinMux (13、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (13、GPIO_OUTPUT、GPIO_PushPull);                //D1

  GPIO_SetupPinMux (14、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (14、GPIO_OUTPUT、GPIO_PushPull);                //D2

  GPIO_SetupPinMux (15、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (15、GPIO_OUTPUT、GPIO_PushPull);                //D3

  GPIO_SetupPinMux (16、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (16、GPIO_OUTPUT、GPIO_PushPull);                //D4

  GPIO_SetupPinMux (17、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (17、GPIO_OUTPUT、GPIO_PushPull);                //D5.

  GPIO_SetupPinMux (20、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (20、GPIO_OUTPUT、GPIO_PushPull);                //D6.

  GPIO_SetupPinMux (21、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (21、GPIO_OUTPUT、GPIO_PushPull);                //D7

 /********* LCD 控制线路 /

  GPIO_SetupPinMux (2、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (2、GPIO_OUTPUT、GPIO_PushPull);      /CS1

  GPIO_SetupPinMux (3、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (3、GPIO_OUTPUT、GPIO_PushPull);      /CS2

  GPIO_SetupPinMux (10、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (10、GPIO_OUTPUT、GPIO_PushPull);      //E

  GPIO_SetupPinMux (11、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (11、GPIO_OUTPUT、GPIO_PushPull);      //DI

  GPIO_SetupPinMux (18、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (18、GPIO_OUTPUT、GPIO_PushPull);      //rw

  GPIO_SetupPinMux (19、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (19、GPIO_OUTPUT、GPIO_PushPull);      //复位

  / /

  返回;
 }

 void SOFT_SPI_DATA (无符号字符数据)
 {
  unsigned char i、maskdata = 0x80;

  美国(5);
  for (i=0;i<8;i++)
   {
     SCL_l;
     美国(20);
      if (数据和 maskdata)
      {
         SDA_h;
      }
      其他
      {
         SDA_l;
      }
      maskdata >=1;
      美国(20);
      SCL_h;
      美国(20);
   }
   美国(5);

 返回;
 }


 void SOFT_SPI_init (void)
 {
  GPIO_SetupPinMux (58、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (58、GPIO_OUTPUT、GPIO_PushPull);      /CS1

  GPIO_SetupPinMux (60、GPIO_MUX_CPU1、0);
  GPIO_SetupPinOptions (60、GPIO_OUTPUT、GPIO_PushPull);      /CS2

  返回;
 }

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

    我们很高兴澄清 SPI 模块的任何位/寄存器/功能的行为。 controlSUITE 中包含所有外设示例。 您可能需要将代码与示例进行比较、以查看问题所在的位置。 请继续调试您的代码并使用论坛提出具体问题。

    谢谢、

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

    尊敬的 Sam:

    一些调试策略可能会在此处有所帮助:

    SPI 寄存器是否按预期初始化?  运行您拥有的任何 SPI 初始化代码后、在"Expressions"窗口中设置断点并检查 SPI 寄存器。  寄存器是否按预期配置?  (您显然还需要参考技术文档+ TI 示例、以了解您是否编写了正确的内容以供开始)

    - SPI 信号是否会将其传递到引脚?  在这里、您可能需要使用示波器或逻辑分析仪来查看在通过 SPI 发送命令时是否存在 SPI 总线流量。  如果没有、您可能需要检查 GPIO 多路复用器设置。  您还可以将 GPIO 多路复用器切换为 GPIO、然后在"Expressions"窗口中手动切换 GPIO 数据、以便彻底检查是否有正确的引脚。

    -命令是否正确? 获得 SPI 总线流量后、您可以使用示波器/逻辑分析仪捕获单个 SPI 消息。  您可以尝试查看前几条消息以检查相位、极性、时序和位顺序等内容。  如果一切看起来电气正常、则您可能需要验证是否发送了正确的消息(例如、加电应是第一条消息、且数据= XXX)