}
/********************************************************************/
3、STM32:LCD1602.h
#ifndef __LCD1602_H
#define __LCD1602_H
/***************************根据自己的硬件引脚做修改*****************************/
#define LCD_RS_Set() GPIO_SetBits( GPIOB, GPIO_Pin_12 )//1602的数据/指令选择控制线
#define LCD_RS_Clr() GPIO_ResetBits( GPIOB, GPIO_Pin_12 )
#define LCD_RW_Set() GPIO_SetBits( GPIOB, GPIO_Pin_13 )//1602的读写控制线
#define LCD_RW_Clr() GPIO_ResetBits( GPIOB, GPIO_Pin_13 )
#define LCD_EN_Set() GPIO_SetBits( GPIOB, GPIO_Pin_14 )//1602的使能控制线
#define LCD_EN_Clr() GPIO_ResetBits( GPIOB, GPIO_Pin_14 )
#define DATAOUT( x ) GPIO_Write( GPIOA, x ) //1602的8条数据控制线
void GPIO_Configuration();
void LCD1602_Init();
void LCD1602_Wait_Ready();
void LCD1602_Write_Cmd( u8 cmd );
void LCD1602_Write_Dat( u8 data );
void LCD1602_ClearScreen();
void LCD1602_Set_Cursor( u8 x, u8 y );
void LCD1602_Show_Str( u8 x, u8 y, u8 *str );
#endif
4、STM32:LCD1602.c
#include 'LCD1602.h'
/******************************************************************************
* 函数名称:void GPIO_Configuration() *
* 函数功能:LCD1602引脚初始化 *
* 输入参数:无 *
* 返回值 :无 *
* 其他说明: *
******************************************************************************/
/*******************根据自己的硬件引脚做修改*****************************************/
void GPIO_Configuration()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE );
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//选择工作频率
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//设置工作模式
GPIO_Init( GPIOB, &GPIO_InitStructure );
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |
GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//设置工作模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//选择工作频率
GPIO_Init( GPIOA, &GPIO_InitStructure );
}
/******************************************************************************
* 函数名称:void LCD1602_Init() *
* 函数功能:LCD1602初始化 *
* 输入参数:无 *
* 返回值 :无 *
* 其他说明: *
******************************************************************************/
void LCD1602_Init()
{
GPIO_Configuration(); //初始化引脚
LCD1602_Write_Cmd( 0x38 ); //显示模式设置
delay_ms( 5 );
LCD1602_Write_Cmd( 0x0c ); //显示开及光标设置
delay_ms( 5 );
LCD1602_Write_Cmd( 0x06 ); //显示光标移动位置
delay_ms( 5 );
LCD1602_Write_Cmd( 0x01 ); //显示清屏
delay_ms( 5 );
}
/******************************************************************************
* 函数名称:void LCD1602_Write_Cmd(u8 cmd) *
* 函数功能:写命令函数 *
* 输入参数: cmd 命令 *
* 返回值 :无 *
* 其他说明: *
******************************************************************************/
void LCD1602_Write_Cmd( u8 cmd )
{
LCD_RS_Clr();
LCD_RW_Clr();
LCD_EN_Set();
GPIO_Write( GPIOA, (GPIO_ReadOutputData( GPIOA ) & 0xff00) | cmd );//对电平的读取
DATAOUT( cmd );
delay_ms( 5 );
LCD_EN_Clr();
}
/******************************************************************************
* 函数名称:void LCD1602_Write_Dat(u8 date) *
* 函数功能:写数据函数 *
* 输入参数: date 数据 *
* 返回值 :无 *
* 其他说明: *
******************************************************************************/
void LCD1602_Write_Dat( u8 data )
{
LCD_RS_Set();
LCD_RW_Clr();
LCD_EN_Set();
GPIO_Write( GPIOA, (GPIO_ReadOutputData( GPIOA ) & 0xff00) | data );//对电平的读取
delay_ms( 5 );
LCD_EN_Clr();
}
/******************************************************************************
* 函数名称:void LCD1602_ClearScreen() *
* 函数功能:1602清屏函数 *
* 输入参数:无 *
* 返回值 :无 *
* 其他说明: *
******************************************************************************/
void LCD1602_ClearScreen()
{
LCD1602_Write_Cmd( 0x01 );
}
/******************************************************************************
* 函数名称:void LCD1602_Set_Cursor(u8 x, u8 y) *
* 函数功能:设置1602位置函数 *
* 输入参数:x 横坐标 y 纵坐标 *
* 返回值 :无 *
上一篇:嵌入式系统的STM32系列芯片应用
下一篇:《嵌入式-STM32开发指南》第二部分 基础篇 - 第3章 按键(HAL库)
推荐阅读最新更新时间:2026-03-13 10:37
- LTC2263-12 演示板,12 位,25Msps,1.8V 双路串行 ADC,5MHz
- 用PIC单片机设计电子密码锁
- AM1G-2424DH30Z ±24V 1 瓦 DC-DC 转换器的典型应用
- 无线充电电动牙刷设计
- OP497FSZ平方放大器典型应用电路
- 基于LTC3453的LED闪光灯驱动器设计
- PAM2808 5W 大功率高亮度 LED 驱动器的典型应用
- 使用 Analog Devices 的 LTC1258CS8-5 的参考设计
- 基于ARM处理器的EtherCAT 通信开发平台 -原理图
- 适用于 ADP1741 2A 低 VIN、低压差线性稳压器的具有可调输出电压、0.75V 至 3.3V 的典型应用电路



STC8H全系列单片机应用手册
stm32驱动屏IC rm68042
使用PIC单片机控制心电前端ADS1192的实现单导心电测量
非常经典的关于LLC的杨波博士论文
VI-27WIU






京公网安备 11010802033920号