打印

求助,GD32 I2C遇到点问题

[复制链接]
5821|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一如既往|  楼主 | 2013-8-14 21:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
GD32F103C8芯片,通过I2C1连接24LC32 EEROM。读写时发现单片机发完EEROM地址后,时钟线SCL变为低电平,通信锁死。
沙发
zkcaptain| | 2013-8-15 08:55 | 只看该作者
楼主试试用把这个函数替换掉:I2C_Standby_24C
代码见附件

I2C_Standby_24C.rar

770 Bytes

I2C判忙

使用特权

评论回复
评论
wangsheng0288 2021-10-26 20:57 回复TA
有效果,赞一个 
板凳
一如既往|  楼主 | 2013-8-15 19:33 | 只看该作者
zkcaptain 发表于 2013-8-15 08:55
楼主试试用把这个函数替换掉:I2C_Standby_24C
代码见附件

多谢,GD的I2C代码是不是和ST的不兼容,我的代码是STM32的,直接搬到GD芯片,I2C这部分用不了。看样还得看看GD手册才行,偷不了懒了

使用特权

评论回复
地板
tonydong| | 2013-8-16 11:41 | 只看该作者
//       I2C_ITConfig(I2C1,I2C_IT_EVT,ENABLE);


/* Test on EV6 and clear it */

timeout=0;

//       while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))

while(0==I2C_GetFlagStatus(I2C1,I2C_FLAG_ADDR))

//       while( 0==((I2C1->SR1)&0x0002) )

{

           if(timeout++>=I2C_TIMEOUT)

           {

//                          timeout = 0;     // error

                    return 0;

           }

}

I2C1->SR1;

I2C1->SR2;


/* Send the EEPROM's internal address to write to */    
红色字体中间加入如上代码

使用特权

评论回复
5
gaochy1126| | 2013-8-27 10:05 | 只看该作者
一直使用模拟的iic

使用特权

评论回复
6
gaochy1126| | 2013-8-27 10:06 | 只看该作者
个人感觉片子上的iic不是特别灵活的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

43

帖子

1

粉丝