F28027驱动LCD12864的问题,请教大家

2019-08-08 22:18发布

现在用F28027驱动12864,按照时序进行编程,实在找不到问题,但是就是不能显示,求大家帮帮忙看一下,谢谢了


#include<DSP28x_Project.h>

#define CS GpioDataRegs.GPADAT.bit.GPIO5
#define SID GpioDataRegs.GPADAT.bit.GPIO6
#define CLK GpioDataRegs.GPADAT.bit.GPIO7

void Gpio_Init(void)
        {
                        EALLOW;
                        GpioCtrlRegs.GPAPUD.all=0xFF;
                        GpioCtrlRegs.GPAMUX1.all = 0x00000000;  // All GPIO
                        GpioCtrlRegs.GPAMUX2.all = 0x00000000;  // All GPIO
                        GpioCtrlRegs.GPBMUX1.all = 0x00000000;  // All GPIO
                        GpioCtrlRegs.GPADIR.all = 0xFFFFFFFF;   // All outputs
                        GpioCtrlRegs.GPBDIR.all = 0x0000000F;   // All outputs
                        EDIS;
        }

void delay(int n)
                {
                        while(n--);
                }

void Sendbyte(unsigned char bytes) //发送一个字节
        {
                 unsigned char i;
                 for(i=0;i<8;i++)
                         {
                                 CLK=1;
                                 SID=bytes&0x80; //取出最高位
                                 CLK=0;
                                 bytes<<=1; //左移
                         }
         }
void write_com(unsigned char com)
         {
                CS=1;
                Sendbyte(0xf8);
                Sendbyte(com&0xf0);
                Sendbyte((com&0x0f)<<4);
                CS=0;
                delay(0xff);
         }
void write_data(unsigned char dat)
         {
                CS=1;
                Sendbyte(0xfa);
                Sendbyte(dat&0xf0);
                Sendbyte((dat&0x0f)<<4);
                CS=0;
                delay(0xff);
         }
void LCD_Init(void)
         {
                  write_com(0x01);
                  write_com(0x30);
                  write_com(0x0c);
                  write_com(0x06);
                  write_com(0x02);
         }

void main(void)
                {
                        InitSysCtrl();                               //        In this function watchdog is disabled
                    DINT;                                                        //Disable interrupts,this has been done in the "InitPieCtrl();"function
                         InitPieCtrl();                                        //Initial PIE,in this function,interrupts are disabled,Clear all PIEIER registers,Clear all PIEIFR registers
                         IER = 0x0000;
                         IFR = 0x0000;
                         InitPieVectTable();                                //Initialize the PIEvectable,let the interrupts point to their own ISR


                         Gpio_Init();                                                //Gpio initial function
                        LCD_Init();
                        
                        
                        write_com(0x80);
                        write_data(0x02);
                        write_data(0x02);
                        write_data(0x02);
                        while(1);
                }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
xichengmadia
1楼-- · 2019-08-09 02:25
12864的种类很多,应该交待一下的。

我有个F28035带12864的帖子,在TI模拟板块。不知道对你有没有用。
拿起书本
2楼-- · 2019-08-09 03:09
12864有串行和并行两种模式,接口不同,程序也不一样
zhangmangui
3楼-- · 2019-08-09 08:21
是的  首先是用SPI还是用并口
接下来最重要的就是时序   这个不容易找出问题
craaazyfor
4楼-- · 2019-08-09 10:30
延时这么小,加大试试,再不行,用示波器抓波形分析
huangfeng33
5楼-- · 2019-08-09 12:14
 精彩回答 2  元偷偷看……
jxmzzr
6楼-- · 2019-08-09 17:57
F28027模拟IO口时,需要对其端口类型及IO口进行设置,楼主看看设置是否正确。

一周热门 更多>