你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
每日签到
STM32团队2
论坛吐槽优化专区
升级测试
F0系列的24c02的I2C
[复制链接]
wztvista
提问时间:2018-3-23 00:23 /
阅读主题, 点击返回1楼
赞
0
收藏
0
评论
20
分享
发布时间:2018-3-23 00:23
请先
登录
后回复
20个回答
hungchieh1029
回答时间:2018-5-3 11:09:06
a1024a.1 32b0c
附上讀寫EEPROM的代碼
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;
}
赞
0
评论
回复
1
2
3
/ 3 页
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
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;
}