你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

HAL库硬件I2C从机发送与接收

[复制链接]
你若安好_清风徐来 提问时间:2020-1-6 17:25 /
最近在做一个东西想吧STM32F030F4 作为一个I2C设备使用,就写了一个I2C从机,我想用的和传感器一样一个发送一个寄存器然后读或者写,但是我发现HAL库不好实现。I2C是使用中断读取的 ,实验发现I2C读取时候只发送一个字节(发送寄存器然后发送一个数据给主机),在写的时候是两个字节(主机发送两个数据一个寄存器一个数据),这就有问题了 函数
HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size);
我字节长度到底是设置1还是2呢,设置2时候在读时候无法触发中断,进入不了函数
void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c);
设置1个时候发现可以读取到两个数据,但是无法再读取到任何数据,也没有进入错误中断,在多次发送就直接一直进入I2C中断,中断出来又马上进入了,
void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
{
        RX_t[0] = RX[0];
        RX_t[1] = RX[1];
        HAL_I2C_Slave_Receive_IT(&hi2c1, (uint8_t*)RX, 2);
//        RX[0] = 0xaa;
//        HAL_I2C_Slave_Transmit(&hi2c1, (uint8_t*)RX, 1,0xff);
//        HAL_I2C_Slave_Receive_IT(&hi2c1, (uint8_t*)RX, 1);
}

有大佬做过从机吗,有代码借我参考参考吗,


I2C.zip

下载

17.27 MB, 下载次数: 63, 下载积分: ST金币 -1

收藏 评论2 发布时间:2020-1-6 17:25

举报

2个回答
奏奏奏 回答时间:2020-1-6 21:22:43
https://www.stmcu.org.cn/module/forum/thread-610058-1-1.html
不知道有没有帮助,自己看吧。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

你若安好_清风徐来 回答时间:2020-1-7 10:40:35
奏奏奏 发表于 2020-1-6 21:22
https://www.stmcu.org.cn/module/forum/thread-610058-1-1.html
不知道有没有帮助,自己看吧。 ...

好的,谢谢啦,我先看看

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版