硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1010|回复: 4
收起左侧

[I2C] IIC从机发送数据遇到的困难

[复制链接]

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2024-9-2 20:42:45 | 显示全部楼层 |阅读模式
以该贴[I2C] 基于STM32H7的硬件I2C从机例子分享代码为基础进行了修改,发现当主机连续读取数据时卡主的问题
能搜到的stm32IIC从机资料比较少,还是发帖求助一下

程序来源

程序来源

期望的效果

期望的效果

实际的效果

实际的效果

进行如下样式的更改,但好像不能用于主机连续读取

进行如下样式的更改,但好像不能用于主机连续读取
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117571
QQ
发表于 2024-9-3 00:44:30 | 显示全部楼层
你的主机代码怎么实现的,方便的话,分享下

回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2024-9-3 09:17:45 | 显示全部楼层
eric2013 发表于 2024-9-3 00:44
你的主机代码怎么实现的,方便的话,分享下

很遗憾我没有主机的代码,因为旧主机从机都是外包干的没有代码;现在我要替代掉外包的从机程序;旧从机程序可以做到连续的读取一模一样的字节,不知道他怎么实现的。
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2024-9-3 11:59:16 | 显示全部楼层
已解决,采用如下写法便可
[C] 纯文本查看 复制代码
			else if(g_i2cRxBuf[0] == 0x20)
			{
				temp = 1;
				g_i2cTxBuf[0] = 0xB6;
				g_i2cTxBuf[1] = 0x5C;
				g_i2cTxBuf[2] = 0x01;
				g_i2cTxBuf[3] = 0xC3;
				g_i2cTxBuf[4] = 0xCB;
				g_i2cTxBuf[5] = 0x7B;
				g_i2cTxBuf[6] = 0xBC;
				g_i2cTxBuf[7] = 0x66;


				g_i2cLen = 8;
				bsp_i2cTransfer();
				
				g_i2cLen = 8;
				bsp_i2cTransfer();
				 
				//g_i2cLen = 1;
//				bsp_i2cReceive();
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117571
QQ
发表于 2024-9-4 08:18:32 | 显示全部楼层
sanktalumo 发表于 2024-9-3 11:59
已解决,采用如下写法便可[mw_shl_code=c,true]                        else if(g_i2cRxBuf[0] == 0x20)
                        {
                                temp = 1;

好的,解决了就好。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-15 22:15 , Processed in 0.043956 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表