我的硬件是这样连接的:数据口接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里面写好的。希望路过的帮忙看一下,谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>