微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > stm32液晶12864驱动,不显示,有程序

stm32液晶12864驱动,不显示,有程序

时间:10-02 整理:3721RD 点击:
编译也没错误,液晶就是不显示,线路连接也没错,请大侠看看程序有木有问题

工程上传了,小弟还是再贴一份吧。  用的是原子的system文件夹
/*********************************************/
下面是主函数
#include<stm32f10x_lib.h>
#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<stm32f10x_lib.h>
#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
/**********************************************************/

管脚的连接关系都没有说明

并行数据口PB0-7,RS   PA4  ;RW  PA5,  EN  PA6;程序不是有写吗,呵呵呵

KAN BU DONG

好多看不懂

我也在学习中,谢谢。

STM32单片机怎么驱动3.2寸240x400液晶    求大神的程序代码借鉴一下   本人是新手

完全看不明白。

。。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top