TI论坛
登录
直播中
恩可口
9年用户
843经验值
私信
关注
[问答]
AMC7812和STM32F407进行硬件I2C通信,为什么总是停在第三个while循环里?
开启该帖子的消息推送
数模转换器
STM32F407
I2C
if(num==0)
return 1;
while(I2C_GetFlagStatus(I2Cx,I2C_FLAG_BUSY));
I2C_AcknowledgeConfig(I2Cx,ENABLE);
I2C_GenerateSTART(I2Cx,ENABLE);
while(!I2C_CheckEvent(I2Cx,I2C_EVENT_MASTER_MODE_SELECT));
I2C_Send7bitAddress(I2Cx,I2C_Addr,I2C_Direc
ti
on_Transmitter);
while(!I2C_CheckEvent(I2Cx,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
I2C_SendData(I2Cx,addr);
while(!I2C_CheckEvent(I2Cx,I2C_EVENT_MASTER_BYTE_TRANSMITTED));
I2C_GenerateSTART(I2Cx,ENABLE);
while(!I2C_CheckEvent(I2Cx,I2C_EVENT_MASTER_MODE_SELECT));
I2C_Send7bitAddress(I2Cx,I2C_Addr,I2C_Direction_Receiver);
while(!I2C_CheckEvent(I2Cx,I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED));
while(num)
{
if(num==1)
{
I2C_AcknowledgeConfig(I2Cx,DISABLE);
I2C_GenerateSTOP(I2Cx,ENABLE);
}
while(!I2C_CheckEvent(I2Cx,I2C_EVENT_MASTER_BYTE_RECEIVED));
*buf = I2C_ReceiveData(I2Cx);
buf++;
num--;
}
I2C_AcknowledgeConfig(I2Cx,ENABLE);
请问为什么总是停在第三个while循环里
I2C_Read(I2C1,0x2F,0x23,bufad,2); 这是调用程序
0x2F是AMC7812地址,0x23是ADC0通道的数据地址,
通信
方式选择I2C,参考电压是用外部提供的2.5V
回帖
(1)
刘珊珊
2025-1-8 15:56:29
停在第三个while循环里, 这是发送从机地址后, 从机没有 ACK 响应. AMC7812 恐怕还没有进入工作状态, 或者地址弄错了
停在第三个while循环里, 这是发送从机地址后, 从机没有 ACK 响应. AMC7812 恐怕还没有进入工作状态, 或者地址弄错了
举报
更多回帖
rotate(-90deg);
回复
相关问答
数模转换器
STM32F407
I2C
STM32f407
的
I2C
卡的问题 求解
2014-03-19
10815
请问有人做过
stm32f407
库
I2C
读取MS5611吗
2018-09-03
3422
基于imx.rt1052-evkb开发板通过
i2c
与
amc7812
b
进行
通信
时遇到的问题求解
2024-12-13
313
我想知道我们可以在
STM32F407
中使用4x
I2C
通信
协议吗?
2023-01-05
411
STM32F407
的特性有哪些
2021-10-18
4932
请问
STM32F
405与
STM32F407
的区别是什么?
2019-03-21
16756
STM32F407
的CAN
通信
过程是怎样的
2021-10-20
2216
怎样使用
STM32F407
的USART
2
HC06蓝牙模块
进行
通信
呢
2021-10-26
2942
如何对
STM32F407
SPI模块
进行
配置
2021-10-15
2676
STM32
使用
硬件
I2C
出现死
循环
和自动退出
2018-08-30
4954
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分