STM32 LCD1602驱动程序
#define
#define LCD_RS_1 GPIOE->BSRR=GPIO_Pin_0 //PE.0--(LCD)RS
#define LCD_RS_0 GPIOE->BRR =GPIO_Pin_0
#define LCD_RW_1 GPIOE->BSRR=GPIO_Pin_1
#define LCD_RW_0 GPIOE->BRR =GPIO_Pin_1
#define LCD_EN_1 GPIOE->BSRR=GPIO_Pin_2 //PE.2--(LCD)E
#define LCD_EN_0 GPIOE->BRR =GPIO_Pin_2
#define DATAOUT
#ifndef uchar
#define uchar unsigned char
#endif
#ifndef uint
#define uint unsigned int
#endif
extern void delay_nms(unsigned long n);
extern void delay_nus(unsigned long n);
uint8_t LCD_busy(void); //读LCD忙碌状态,直到LCD1602不忙为止
void Wait_Leisure(void);//一直等待到LCD1602空闲
void LCD_WriteInitcmd(uchar cmd);//写入LCD初始化时的命令,不可以检测忙状态
void LCD_Writecmd(uchar cmd);//写指令到LCD1602,指令数据占一个字节
void LCD_Writedata(uchar dat);//写一字节数据到LCD1602
void LCD_pos(uchar pos);//设定显示位置 00h~27h,40h~47h
void LCD_Setpos(uchar row,uchar col);//根据习惯设定显示位置
void LCD_DispChar(char ch);//显示一个字符
void LCD_Setpos_DispChar(uchar row,uchar col,char ch);//在指定位置显示一个字符
void LCD_DispString(char str[]);//使LCD1602显示一个字符串,显示位置需提前设定
void LCD_Setpos_DispString(uchar row,uchar col,char str[]);//使LCD1602从指定位置开始显示一个字符串
void LCD_Dispnum(uint32_t num);//显示一个不超过8位的整数,显示位置需提前设置
void LCD_Setpos_Dispnum(uchar row,uchar col,uint32_t num);//在指定位置显示一个不超过8位的整数
void LCD_DispDecimal(uint32_t num,uchar dot);//显示一个有效位不超过8位的浮点数,显示位置需要提前设定
//在指定位置显示一个有效位不超过8位的浮点数
void LCD_Setpos_DispDecimal(uchar row,uchar col,uint32_t num,uchar dot);
//显示日历,显示日期与时间
void LCD_DispDateTime(uint32_t year,uchar month,uchar day,uchar hour,uchar min,uchar sec);
//显示秒表,显示时,分,秒,10毫秒,精确到10ms
void LCD_DispStopWatch(uchar hour,uchar min,uchar sec,uchar tenms);
//显示频率计,动态自动调整频率显示
void LCD_DispFreq(uint32_t freq);
void LCD_ShiftLeft(void);//屏幕整体左移一格,用于滚动显示
void LCD_ShiftRight(void);//屏幕整体右移一格,用于滚动显示
void LCD_Clear(void);//清屏,清除显示
void LCD_Return(void);//使光标还回原点位置
void LCD_Close(void);//关显示
void LCD_Open(void);//开显示
void LCD_FlickerChar(uchar row,uchar col);//使指定位置字符闪烁,不显示光标
void LCD_CloseFlicker(void);//关闭字符闪烁
void LCD_FlickerScreen(void);//屏幕秒闪烁一次
void LCD_Init(void);
#endif
#include "stm32f10x.h"
#include "LCD1602.h"
#ifndef
#define
uint8_t LCD_busy(void)
{
}
void Wait_Leisure(void)
{
}
void LCD_WriteInitcmd(uchar cmd)
{
}
void LCD_Writecmd(uchar cmd)
{
}
void LCD_Writedata(uchar dat)
{
}
void LCD_pos(uchar pos)
{
}
void LCD_Setpos(uchar row,uchar col)
{
}
void LCD_DispChar(char ch)
{
}
void LCD_Setpos_DispChar(uchar row,uchar col,char ch)
{
}
void LCD_DispString(char str[])
{
}
void LCD_Setpos_DispString(uchar row,uchar col,char str[])
{
}
void LCD_Dispnum(uint32_t num)
{
}
void LCD_Setpos_Dispnum(uchar row,uchar col,uint32_t num)
{
}
void LCD_DispDecimal(uint32_t num,uchar dot)
{
}
void LCD_Setpos_DispDecimal(uchar row,uchar col,uint32_t num,uchar dot)
{
}
void LCD_DispDateTime(uint32_t year,uchar month,uchar day,uchar hour,uchar min,uchar sec)
{
}
void LCD_DispStopWatch(uchar hour,uchar min,uchar sec,uchar tenms)
{
}
void LCD_DispFreq(uint32_t freq)
{
}
//屏幕整体左移一格,用于滚动显示
void LCD_ShiftLeft()
{
}
//屏幕整体右移一格,用于滚动显示
void LCD_ShiftRight(void)
{
}
//清屏,清除显示
void LCD_Clear(void)
{
}
//使光标还回原点位置
void LCD_Return(void)
{
}
//关显示
void LCD_Close(void)
{
}
//开显示
void LCD_Open(void)
{
}
void LCD_FlickerChar(uchar row,uchar col)
{
}
//关闭字符闪烁
void LCD_CloseFlicker(void)
{
}
//屏幕秒闪烁一次
void LCD_FlickerScreen(void)
{
}
void LCD_Init(void)
{
}
STM32LCD1602驱动程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)