社区导航

 

搜索
查看: 2547|回复: 0

[求助] stm32驱动液晶12864,有程序,求助

[复制链接]

6

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2012-10-11 12:33 | 显示全部楼层 |阅读模式
编译也没错误,液晶就是不显示,线路连接也没错,请大侠看看程序有木有问题


工程上传了,小弟还是再贴一份吧。  用的是原子的system文件夹

/*********************************************/
下面是主函数

#include
#include"delay.h"
#include"sys.h"
#include"usart.h"
#include"lcd_12864.h"

int main(void)
{
Stm32_Clock_Init(9);
delay_init(72);
LCD_Init();
JTAG_Set(JTAG_SWD_ENABLE);
init_lcd_12864();
while(1)
{
  JTAG_Set(SWD_ENABLE);
  display_lcd12864();
}

}
/*********************************************/
下面是液晶.c
#include
#include"lcd_12864.h"
#include"delay.h"

void LCD_Init(void)
{
RCC->APB2ENR|=1<<2;   //使能PORTA时钟
RCC->APB2ENR|=1<<3;   //使能PORTB时钟


GPIOA->CRL&=0XF000FFFF;  //将PORTA的4-6置零 初始化该位
GPIOA->CRL|=0X03330000;  //设置4-6为推挽输出模式
GPIOA->ODR|=1<<4;
GPIOA->ODR|=1<<5;   //端口数据输出寄存器,向该就寄存器写数据可以控制IO的输出电平
GPIOA->ODR|=1<<6;   // 上拉模式设置

// GPIOB->CRL&=0X00000000;  //将PORTB的0-7置零
GPIOB->CRL|=0X33333333;  //0-7  推挽输出
GPIOB->ODR|=0X0000FFFF;  //上拉
}

void write_com(u8 com)
{
LCD_RS=0; //写指令
DATAOUT(com);
delay_ms(5);
LCD_EN=1;
delay_ms(5);
LCD_EN=0;
}


void write_dat(u8 dat)
{
LCD_RS=1; //写数据
DATAOUT(dat);
delay_ms(5);
LCD_EN=1;
delay_ms(5);
LCD_EN=0;
}

void init_lcd_12864(void)
{
LCD_EN=0;
LCD_RW=0;
write_com(0x30); //基本指令操作
delay_ms(5);
write_com(0x0c);//开显示,关光标
delay_ms(5);
write_com(0x01);//清屏
delay_ms(5);
}

void display_lcd12864(void)
{
write_com(0x80);
write_dat('Z');

}
/*******************************************/
下面是液晶.h
#ifndef __LCD_12864_H__
#define __LCD_12864_H__

#include"sys.h"

#define LCD_RS PAout(4)
#define LCD_RW PAout(5)
#define LCD_EN PAout(6)

//#define pb0 PBout(0)
//#define pb1 PBout(1)
//#define pb2 PBout(2)
//#define pb3 PBout(3)
//#define pb4 PBout(4)
//#define pb5 PBout(5)
//#define pb6 PBout(6)
//#define pb7 PBout(7)
#define DATAOUT(x) GPIOB->ODR=(GPIOB->ODR&0XFF00)|(x&0X00FF)   //大侠看看这句,并口传输数据给液晶,这样可以达到目的吗?

void LCD_Init(void);
void write_com(u8 com);
void write_dat(u8 dat);
extern void init_lcd_12864(void);
extern void display_lcd12864(void);

#endif
/**********************************************************/
此帖出自stm32/stm8论坛

回复

使用道具 举报

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

关闭

站长推荐上一条 /5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-1-22 01:24 , Processed in 0.087427 second(s), 17 queries , Gzip On, MemCache On.

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