OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2978|回复: 9

求助,用STM32F103的mini板驱动3.3V的液晶屏12864

[复制链接]

2

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2019-10-29
在线时间
47 小时
发表于 2019-11-1 15:42:16 | 显示全部楼层 |阅读模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-11-4 02:54:00 | 显示全部楼层
回复

使用道具 举报

2

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2019-10-29
在线时间
47 小时
 楼主| 发表于 2019-11-4 08:14:00 | 显示全部楼层

//12864程序
void lcd_config(void)
{
       
        GPIO_InitTypeDef GPIO_InitStruct;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);   
        GPIO_InitStruct.GPIO_Mode= GPIO_Mode_Out_PP;
        GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_4;
        GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOB,&GPIO_InitStruct);
}
void send_byte(u8 bbyte)
{
        u8 i;
        for(i=0;i<8;i++)
        {
                if((bbyte)&0x80)
                {
                        SID_H;                          
                }
                else
                {
                        SID_L;         
                }
                SCLK_H;
                SCLK_L;
                bbyte<<=1;      
        }
}
void lcd_init(void)
{
        delay_ms(10);            
  CS_H;
        write_char(0,0x30);      

        write_char(0,0x0c);      

        write_char(0,0x01);      
}

void clr_scr(void)
{
        write_char(0,0x01);      
  delay_ms(5);
}
void lcd_set_xy(u8 X,u8 Y)
{
        u8 address;
        switch(X)
        {
                case 0: address=0x80+Y;break;
                case 1: address=0x90+Y;break;
                case 2: address=0x88+Y;break;
                case 3: address=0x98+Y;break;
                default: address=0x80+Y;break;
        }
        write_char(0,address);
}

void lcd_write_string(u8 X,u8 Y,uc8 *s)
{
        lcd_set_xy(X,Y);
        while(*s)
        {
                write_char(1,*s);
                s++;
                delay_ms(1);
        }
}
//主函数
int main()
{
        delay_init();
        lcd_config();
        clr_scr();
        lcd_write_string(0,0,"hello");
}
一通电,屏幕亮,但不显示内容,很不理解。
回复

使用道具 举报

2

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2019-10-29
在线时间
47 小时
 楼主| 发表于 2019-11-4 08:21:57 | 显示全部楼层

主函数
int main()
{
        delay_init();

        lcd_config();

        lcd_init();

  clr_scr();

        lcd_write_string(0,0,"hello");
       
       
}

12864
void lcd_config(void)
{
       
        GPIO_InitTypeDef GPIO_InitStruct;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);   
        GPIO_InitStruct.GPIO_Mode= GPIO_Mode_Out_PP;
        GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_4;
        GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOB,&GPIO_InitStruct);
}

void send_byte(u8 bbyte)
{
        u8 i;
        for(i=0;i<8;i++)
        {
                if((bbyte)&0x80)
                {
                        SID_H;                       
                }
                else
                {
                        SID_L;      
                }
                SCLK_H;

                SCLK_L;
                bbyte<<=1;        
        }
}

void write_char(u8 start,u8 ddata)
{
        u8 start_data,Hdata,Ldata;
        if(start==0)
        {
                start_data=0xf8;      
        }
        else
        {
                start_data=0xfa;      
        }
        Hdata=ddata&0xf0;         
        Ldata=(ddata<<4)&0xf0;   
        send_byte(start_data);               
        delay_ms(5);
        send_byte(Hdata);                
        delay_ms(1);
        send_byte(Ldata);               
        delay_ms(1);
}

void lcd_init(void)
{
        delay_ms(10);              
  CS_H;
        write_char(0,0x30);      

        write_char(0,0x0c);        

        write_char(0,0x01);     


}

void clr_scr(void)
{
        write_char(0,0x01);      
  delay_ms(5);
}

void lcd_set_xy(u8 X,u8 Y)
{
        u8 address;
        switch(X)
        {
                case 0: address=0x80+Y;break;
                case 1: address=0x90+Y;break;
                case 2: address=0x88+Y;break;
                case 3: address=0x98+Y;break;
                default: address=0x80+Y;break;
        }
        write_char(0,address);
}

void lcd_write_string(u8 X,u8 Y,uc8 *s)
{
        lcd_set_xy(X,Y);
        while(*s)
        {
                write_char(1,*s);
                s++;
                delay_ms(1);
        }
}
通电后不现实内容,屏幕亮
回复

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2019-11-4 09:05:55 | 显示全部楼层

哈哈,原子哥言简意赅
回复

使用道具 举报

2

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2019-10-29
在线时间
47 小时
 楼主| 发表于 2019-11-4 10:43:43 | 显示全部楼层

程序下进去,屏幕亮但不显示内容
回复

使用道具 举报

2

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2019-10-29
在线时间
47 小时
 楼主| 发表于 2019-11-5 09:22:39 | 显示全部楼层
a3748622 发表于 2019-11-4 09:05
哈哈,原子哥言简意赅

能不能讲讲
回复

使用道具 举报

27

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
232
金钱
232
注册时间
2016-8-31
在线时间
252 小时
发表于 2019-11-5 10:35:01 | 显示全部楼层
程序哪来的
回复

使用道具 举报

2

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2019-10-29
在线时间
47 小时
 楼主| 发表于 2019-11-6 08:09:44 | 显示全部楼层

看网上改的,
回复

使用道具 举报

2

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2019-10-29
在线时间
47 小时
 楼主| 发表于 2019-11-6 08:44:29 | 显示全部楼层

这程序不对吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-28 06:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表