#include "M24C32.h" uint8_t writedata[1] = {0xAA}; uint8_t Readdata[1] = {0,}; void I2c_Status_Check(I2C_HandleTypeDef* hi2cx,HAL_StatusTypeDef status){ if(HAL_OK == status){ printf("HAL_OK\n"); } else if(HAL_ERROR == status){ printf("HAL_ERROR\n"); }else if(HAL_BUSY == status){ printf("HAL_ERROR\n"); }else if(HAL_TIMEOUT == status){ printf("HAL_ERROR\n"); } } void M24C32_Data_Write(I2C_HandleTypeDef* hi2cx,uint8_t* data,uint16_t address,uint8_t size){ HAL_StatusTypeDef status = HAL_ERROR; for(uint8_t i = 0; i < size; i++){ status = HAL_I2C_Mem_Write(hi2cx,0xA0,address + i, I2C_MEMADD_SIZE_16BIT, &data[i],1, 2000); HAL_Delay(5); if(status > HAL_OK) printf("EEPROM SAVE ERROR!!! \n"); } // I2c_Status_Check(status); } uint8_t M24C32_Data_Read(I2C_HandleTypeDef* hi2cx,uint16_t address){ uint8_t data[1] = {0}; HAL_StatusTypeDef status = HAL_ERROR; status = HAL_I2C_Mem_Read(hi2cx,0xA1, address,I2C_MEMADD_SIZE_16BIT, &data[0],1, 2000); // I2c_Status_Check(status); // printf("Readdata[0] : %02x\n",data); return data[0]; }