你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
toofree 发表于 2018-3-23 00:23 HAL库中有一个F072的,路径“STM32Cube_FW_F0_V1.9.0\Projects\STM32F072B-Discovery\Examples\I2C\I2C_EE ...
wztvista 发表于 2018-3-24 22:53 谢谢了 ,你这份资料在发这个帖子以前我就看过了。很有干货,之所以寻找2402的标准代码,是为了找我自己 ...
wztvista 发表于 2018-3-24 23:43 您这程序里用的是ANT7-M24LR,是否与24c02完全一样?IIC读写程序完全一样?
toofree 发表于 2018-3-26 00:47 不完全相同,ANT7-M24LR,每页容量不同,要进行页操作的话得看程序,随机读写单字节没有区别 ...
您这程序里用的是ANT7-M24LR,是否与24c02完全一样?IIC读写程序完全一样?
其实读的就是2402
不完全相同,ANT7-M24LR,每页容量不同,要进行页操作的话得看程序,随机读写单字节没有区别
好的,只要不是页读写,那字节读写就是跟24C02一样的,谢谢您了!
I2C_HandleTypeDef hi2c_eeprom;
void MX_I2C_EEPROM_Init(void)
{
hi2c_eeprom.Instance = EEPROM_I2Cx;
hi2c_eeprom.Init.ClockSpeed = I2C_SPEEDCLOCK;
hi2c_eeprom.Init.DutyCycle = I2C_DUTYCYCLE;
hi2c_eeprom.Init.OwnAddress1 = 0;
hi2c_eeprom.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c_eeprom.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
hi2c_eeprom.Init.OwnAddress2 = 0;
hi2c_eeprom.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
hi2c_eeprom.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
HAL_I2C_Init(&hi2c_eeprom);
}
void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
{
GPIO_InitTypeDef GPIO_InitStruct;
if(hi2c->Instance==EEPROM_I2Cx)
{
EEPROM_I2C_RCC_CLK_ENABLE();
EEPROM_I2C_GPIO_CLK_ENABLE();
/**I2C1 GPIO Configuration
PB6 ------> I2C1_SCL
PB7 ------> I2C1_SDA
*/
GPIO_InitStruct.Pin = EEPROM_I2C_SCL_PIN|EEPROM_I2C_SDA_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(EEPROM_I2C_GPIO_PORT, &GPIO_InitStruct);
}
}
void I2C_EEPROM_WriteByte(uint16_t Addr, uint8_t Reg, uint8_t Value)
{
HAL_StatusTypeDef status = HAL_OK;
status = HAL_I2C_Mem_Write(&hi2c_eeprom, Addr, (uint16_t)Reg, I2C_MEMADD_SIZE_8BIT, &Value, 1, I2cxTimeout);
if(status != HAL_OK)
{
I2C_EEPROM_Error();
}
}
uint8_t I2C_EEPROM_Readbyte(uint16_t Addr, uint8_t Reg)
{
HAL_StatusTypeDef status = HAL_OK;
uint8_t value = 0;
status = HAL_I2C_Mem_Read(&hi2c_eeprom, Addr, Reg, I2C_MEMADD_SIZE_8BIT, &value, 1, I2cxTimeout);
if(status != HAL_OK)
{
I2C_EEPROM_Error();
}
return value;
}