資源簡(jiǎn)介
STM32F3的 LCD1602的驅(qū)動(dòng)代碼,用c語(yǔ)言,下載后修改成自己的I2C接口號(hào)就能用。

代碼片段和文件信息
/**?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****/
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件?????????258??2018-08-04?17:12??i2c-lcd.h
?????文件????????1409??2018-08-04?17:48??i2c-lcd.c
- 上一篇:圖的深度遍歷和廣度遍歷
- 下一篇:MFC Afxcmn.h
評(píng)論
共有 條評(píng)論