关于LCD1602的程序,遇到问题了,大神帮忙看一下问题出在哪。

2019-08-22 13:27发布

我的硬件是这样连接的:数据口接PB0——PB7;PC6接EN,PC8接rs,RW直接接GND。

下面是LCD.c文件:
#include "LCD.H"
#include "delay.h"
  
void LED_Init(void)
{
     GPIO_InitTypeDef  GPIO_InitStructure;
 
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE); //?????????±?? ???????±??
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);   //?ò???????±??
     GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//?÷????????????

     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;          
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //???ì???? ???è??????????????????????
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO????????50MHz

     GPIO_Init(GPIOB, &GPIO_InitStructure);  
     GPIO_Init(GPIOC, &GPIO_InitStructure);

}

void write_com(u8 com)
{
rs=0;
GPIO_Write(GPIOB,com);
delay_ms(5);
en=1;
delay_ms(5);
en=0;
}
void write_data(u8 date)
{
rs=1;
GPIO_Write(GPIOB,date);
delay_ms(5);
en=1;
delay_ms(5);
en=0;
}
void init(void)
{
write_com(0x38);
write_com(0x0f);
write_com(0x06);
write_com(0x01);
write_com(0x80+0x10);
}

下面是LCD.c文件:
#ifndef __LCD_H
#define __LCD_H  
#include "sys.h"

#define rs PCout(6) 
#define en PCout(8)

void LED_Init(void);
void write_com(u8 com);
void write_data(u8 date);
void init(void);

#endif

下面是main.c文件:
#include "LCD.h"
#include "delay.h"
#include "sys.h"


int main(void)
{
delay_init();         //???±??????????  
LED_Init();         //????????LED??????????????
  init();   //lcd初始化
while(1)
{
write_com(0x80);
write_data(0x30+5);
}
}

其中延时函数是delay.h里面写好的。希望路过的帮忙看一下,谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
带我足够强大
1楼-- · 2019-08-23 12:28
 精彩回答 2  元偷偷看……
laixiaohai
2楼-- · 2019-08-23 13:04
?               
laixiaohai
3楼-- · 2019-08-23 15:51
lcd.h怎么没有啊
zzq11986
4楼-- · 2019-08-23 16:39
想看下原子哥的解答
一只风筝
5楼-- · 2019-08-23 16:59
Evan_W 发表于 2016-4-22 16:45
**** 作者被禁止或删除 内容自动屏蔽 ****

我猜测:虽然都是32的8个引脚接1602的8个引脚,但是32引脚的速度快,1602的引脚接受数据速度慢,所以1602的速度跟不上32的速度。大概就是这么个意思吧

一周热门 更多>