STM32单片机驱动单片机驱动LCD1602液晶程序液晶程序
最近看到网上很多人都在找STM32单片机驱动LCD1602液晶程序,有的人写的比较复杂刚好自己最近也在搞
STM32单片机。就花了点时间写出一份仅供参考和学习。单片机IO驱动能力弱这里用的是10K上拉电阻,也可以
采用74HC245来驱动。
/*********************************************************************************************
* STM32VET6开发板实验程序火牛开发板
* 硬件: RS - RW - EN 引脚用10K电阻上拉,CRL 设置为开漏输出
* 硬件: PB0--PB7 数据脚用10K电阻上拉,CRL 设置为开漏输出
**********************************************************************************************/
#ifndef _LCD1602_H
#define _LCD1602_H
#include "LCD1602.H"
//============================端口位清除寄存器==============================================//
#define LCD1602_RS0 GPIOE->BRR= 0x00000004 //低电平PE.2
#define LCD1602_RW0 GPIOE->BRR= 0x00000010 //低电平PE.4
#define LCD1602_EN0 GPIOE->BRR= 0x00000040 //低电平PE.6
//============================端口位设置/清除寄存器=========================================//
#define LCD1602_RS1 GPIOE->BSRR = 0x00000004 //高电平PE.2
#define LCD1602_RW1 GPIOE->BSRR = 0x00000010 //高电平PE.4
#define LCD1602_EN1 GPIOE->BSRR = 0x00000040 //高电平PE.4
#define DATA_OUT GPIOD->ODR//数据端口 PB0-PB7
//==========================================================================================//
//单片机系统时钟在72MHZ下的延时
void Delay_us(unsigned long CountLing)
{
signed char i;
while(CountLing--)
{
i = 10;
while(i--);
}
}
//==========================================================================================//
//LCD1602液晶读忙状态
void LCD_FBUF(void)
{
LCD1602_RS0; //RS信号拉低
评论0