• 大小: 936B
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-11
  • 语言: C/C++
  • 标签: I2C  LCD1602  STM32  

资源简介

STM32F3的 LCD1602的驱动代码,用c语言,下载后修改成自己的I2C接口号就能用。

资源截图

代码片段和文件信息


/** to control the LCD1602 **/

#include “i2c-lcd.h“
extern I2C_HandleTypeDef hi2c1;  // choose the i2c1

#define SLAVE_ADDRESS_LCD 0x4E // change this according to a0 a1 a2 from PCF8574

void lcd_send_cmd (char cmd)
{
  char data_u data_l;
uint8_t data_t[4];
data_u = (cmd&0xf0);
data_l = ((cmd<<4)&0xf0);
data_t[0] = data_u|0x0C;  //en=1 rs=0
data_t[1] = data_u|0x08;  //en=0 rs=0
data_t[2] = data_l|0x0C;  //en=1 rs=0
data_t[3] = data_l|0x08;  //en=0 rs=0
HAL_I2C_Master_Transmit (&hi2c1 SLAVE_ADDRESS_LCD(uint8_t *) data_t 4 100);
}

void lcd_send_data (char data)
{
char data_u data_l;
uint8_t data_t[4];
data_u = (data&0xf0);
data_l = ((data<<4)&0xf0);
data_t[0] = data_u|0x0D;  //en=1 rs=0
data_t[1] = data_u|0x09;  //en=0 rs=0
data_t[2] = data_l|0x0D;  //en=1 rs=0
data_t[3] = data_l|0x09;  //en=0 rs=0
HAL_I2C_Master_Transmit (&hi2c1 SLAVE_ADDRESS_LCD(uint8_t *) data_t 4 100);
}

void lcd_init (void)
{
uint8_t i=0;
HAL_Delay(100);
for(i=0;i<3;i++)//sending 3 times: select 4-bit mode
{
lcd_send_cmd(0x03);
HAL_Delay(45);
}
lcd_send_cmd (0x02);
HAL_Delay(100);
lcd_send_cmd (0x28);
HAL_Delay(1);
lcd_send_cmd (0x0c);
HAL_Delay(1);
lcd_send_cmd (0x80);
HAL_Delay(1);
}

void lcd_send_string (char *str)
{
while (*str) lcd_send_data (*str++);
}

/************************ chen ziang *****END OF FILE****/

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件         258  2018-08-04 17:12  i2c-lcd.h
     文件        1409  2018-08-04 17:48  i2c-lcd.c

评论

共有 条评论