一、原理图
二、驱动文件
将官方提供的资源包中的i2c_hal.h文件复制到自己所建的工程文件夹对应的Inc文件夹下,将资源包中的i2c_hal.c文件复制到自己所建的工程文件夹对应的Src文件夹下,随后打开工程,将对应文件添加进工程中。
三、代码实现
i2c_hal.c
//写AT24C02
void write_at24c02(unsigned char add,unsigned char dat)
{
I2CStart();
I2CSendByte(0xa0);
I2CWaitAck();
I2CSendByte(add);
I2CWaitAck();
I2CSendByte(dat);
I2CWaitAck();
I2CStop();
}
//读AT24C02
unsigned char read_at24c02(unsigned char add)
{
unsigned char dat=0;
I2CStart();
I2CSendByte(0xa0);
I2CWaitAck();
I2CSendByte(add);
I2CWaitAck();
I2CStart();
I2CSendByte(0xa1);
I2CWaitAck();
dat=I2CReceiveByte();
I2CSendNotAck();
I2CStop();
return dat;
}
main.c
#include "i2c_hal.h"
#include "stdio.h"
#include "lcd.h"
/* USER CODE BEGIN Init */
LCD_Init();
I2CInit();
/* USER CODE END Init */
//LCD初始化
LCD_Clear(Blue2);
LCD_SetBackColor(White);
LCD_SetTextColor(Blue2);
//AT24C02存取数据
write_at24c02(0x40,10);
HAL_Delay(5);
data=read_at24c02(0x40);
sprintf((char*)str,"%d",data);
LCD_DisplayStringLine(Line0,str);
?实验现象
|