野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9762|回复: 8

关于I2C中检测事件EV6跑不出去请大佬解答一下

[复制链接]
发表于 2018-7-11 16:12:58 | 显示全部楼层 |阅读模式
I2CTimeout = I2CT_FLAG_TIMEOUT;
        /* Send EEPROM address for write */
        I2C_Send7bitAddress(EEPROM_I2Cx, EEPROM_ADDRESS, I2C_Direction_Transmitter);

        /* Test on EV6 and clear it */
        while(!I2C_CheckEvent(EEPROM_I2Cx, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))
        {
                if((I2CTimeout--) == 0)
                        return 1;
        }  

卡死在这个while循环里面了,出不去,请大佬指教一下!

回复

使用道具 举报

发表于 2018-7-11 16:44:06 | 显示全部楼层
检查下EEPROM的地址设置得对不对,检查eeprom跟板子的硬件连接是否正常
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-11 16:57:07 | 显示全部楼层
笑你像狗 发表于 2018-7-11 16:44
检查下EEPROM的地址设置得对不对,检查eeprom跟板子的硬件连接是否正常

EEPROM设置得只要不和源地址一样就行吧?硬件连接没问题 ,检查了一下
回复 支持 反对

使用道具 举报

发表于 2018-7-11 18:48:19 | 显示全部楼层
qq425676101 发表于 2018-7-11 16:57
EEPROM设置得只要不和源地址一样就行吧?硬件连接没问题 ,检查了一下

不同的i2c设备的地址是不一样的要对应才会有响应,可以用个测试函数测试下看看id是什么。。因为有的要左移的。。。。
回复 支持 反对

使用道具 举报

发表于 2018-7-11 19:02:55 | 显示全部楼层
qq425676101 发表于 2018-7-11 16:57
EEPROM设置得只要不和源地址一样就行吧?硬件连接没问题 ,检查了一下

EEPROM地址是由硬件连接决定的,用野火开发板的话你直接用野火例程那个地址
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-12 09:36:02 | 显示全部楼层
随风 发表于 2018-7-11 19:02
EEPROM地址是由硬件连接决定的,用野火开发板的话你直接用野火例程那个地址

野火得历程跑 没问题,我自己写一个代码都一样 跑不通。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-12 09:37:23 | 显示全部楼层
非谢家之宝树 发表于 2018-7-11 18:48
不同的i2c设备的地址是不一样的要对应才会有响应,可以用个测试函数测试下看看id是什么。。因为有的要左 ...

设备地址是从历程上弄得,代码和历程一样,自己一个个敲下来的但是跑不了,死在EV6事件,检测ADDR得时候莫名被清空了。
回复 支持 反对

使用道具 举报

发表于 2018-7-12 11:32:24 | 显示全部楼层
qq425676101 发表于 2018-7-12 09:37
设备地址是从历程上弄得,代码和历程一样,自己一个个敲下来的但是跑不了,死在EV6事件,检测ADDR得时候 ...

可以一个函数一个函数与野火的替换,看看是哪个的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-12 14:24:28 | 显示全部楼层
随风 发表于 2018-7-12 11:32
可以一个函数一个函数与野火的替换,看看是哪个的问题

嗯嗯,我再去试试
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-10-6 18:33 , Processed in 0.027778 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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