注意:程序里的头文件有些可能有些欠缺。文本最后有个使用举例,可参考。
关于成功的图片:我不慎正负极连反,把lcd1602烧掉了,因此改用0.96oled做项目了,所以现在也没法上传成功后的照片了,所以正负极连接需谨慎。说多了都是泪。。。
连线详情:
VSS:接地
VDD:接5V电源(连接时注意正负极!!!)
V0:接地
RS:PB0
RW:PB1
EN:PB10
D4-D7:PA4-PA7
A:接正 K:接地
四针接法的优点是减少杜邦线的使用,减小单片机的负担,原理也很简单,先传高四位,在将低四位左移至高四位传输。
四针法接法详情,可访问下面的链接:
http://www.doc88.com/p-183484826361.html
代码参考:
https://blog.csdn.net/qq1294272813/article/details/80431883
代码:
Lcd1602.h
#ifndef _LCD1602_H_
#define _LCD1602_H_
#include "stm32f4xx.h"
#include "delay.h"
#define LCD_DATA_PORT GPIOA
//1602指令/数据 引脚
#define LCD_RS_Set() GPIO_SetBits(GPIOB, GPIO_Pin_0)
#define LCD_RS_Clr() GPIO_ResetBits(GPIOB, GPIO_Pin_0)
//1602读写引脚
#define LCD_RW_Set() GPIO_SetBits(GPIOB, GPIO_Pin_1)
#define LCD_RW_Clr() GPIO_ResetBits(GPIOB, GPIO_Pin_1)
//1602使能引脚
#define LCD_EN_Set() GPIO_SetBits(GPIOB, GPIO_Pin_10)
#define LCD_EN_Clr() GPIO_ResetBits(GPIOB, GPIO_Pin_10)
//1602数据端口 PD4~7
#define DATAOUT(x) GPIO_Write(LCD_DATA_PORT, x)
#define u8 unsigned cha