STM32的I2C接口谁用过了【已解决】

核桃佳子   2007-12-29 17:51 楼主
                                 我用它读写24C512,STM32读不到ACK,而实测24C512的SDA已经是低电平了。

回复评论 (8)

已经可以读写了

原来随手把24C512的I2C地址写成0x00,改成0xA0后就可以读写了。
但是又发现了一个新问题,单步一切OK,全速要在2次操作中间要插入一个延时才行,估计是停止位的问题,但不知如何使用ST的库来查询停止位是否发送完?

  I2C_24CXX_Write(8, pDatW, 8);
  for(i=0;i<0x1000000;i++)
  {
    i++;
  }
  I2C_24CXX_Read(4, pDatR, 8);
点赞  2007-12-30 12:21

本来打算用SPI接口FLASH的

                                 考虑到容量不是太大,速度要求不是特别高,而且EEPROM可以随机读写没有必需先擦后写的问题,所以就选择了I2C接口的24C512
点赞  2007-12-30 12:28

倒塌了~~~24系列的EEPROM器件地址都是0xa0/0xa1~~~

俺还没玩到那一步~~~
相关链接:http://hotpower.2@1ic.org/user1/46/archives/2007/44469.html

点赞  2007-12-30 12:51

2次之间延时10mS左右应该没问题

                                  
点赞  2007-12-30 13:05

Hot不是极端憎恨Delay函数吗?

                                 “2次之间延时10mS左右应该没问题”,我觉得如果有可能,用查询方法比较好
点赞  2008-1-2 03:23

不是停止位的问题

不是停止位的问题,好好看看EEPROM的手册,写数据要延时等待EEPROM device
把数据从缓冲写到EEPROM区.写数据后发停止位,然后发start 位,如果可以接收到ACK,就说明设备写完成.在手册里都有写的.
点赞  2008-1-2 08:31

写完以后EEPROM就会自闭一段时间,一般是5ms以上



各位大牛估计都是玩os的……^_^
点赞  2008-1-2 08:56

不知主发模式的中断收发程序例程有无???

                                  
点赞  2008-1-2 12:50
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复