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

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, 下载次数: 67, 下载积分: 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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版