关于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里面写好的。希望路过的帮忙看一下,谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。