在线情况
楼主
  • 头像
  • 级别
    • 积分13
    • 经验304
    • 文章14
    • 注册2011-03-07
    求:用CC430F15XX单片机的I2C操作AT24C系列EEPROM的程序
    求:用CC430F15XX单片机的I2C操作AT24C系列EEPROM的程序(不是模拟的,而是真的用msp430的I2C模块),我自己写了一个,但不知道为什么,读出来的数据总是为0xFF,看哪位大神有写好了点参考一下,谢谢!
    要避免一见钟情的沉沦,记得不要看她第一眼。
    在线情况
    2
    • 头像
    • 级别
      • 积分13
      • 经验304
      • 文章14
      • 注册2011-03-07
          本着对别人和自己负责的有始有终的原则,说说现在的更新或者状态:
          TI上面确实有例程,不过那是针对msp430x2系列的,而且很晕倒的是msp430x2系列和CC430F系列的I2C颇有不同。当时我走入困境时,最后使出了一招杀手锏,那就是不用430的内置的I2C,而用那几个引脚来做模拟I2C(因为以前做过模拟的I2C写AT24CXX的EEPROM程序)!经过测试,发现是OK的。
          我用模拟的方法只是为了证明硬件是OK的,最后还要使用CC430的I2C。经过仔细看datasheet才知道,I2C那个发送中断意味着的是可以往发送缓冲区填写内容,而并非说真的能够往里面填写了,为什么呢?因为正常通讯是,还要接收一个ACK才行,比较郁闷的是这个I2C内核有NACK的中断而没有ACK的中断。所以我自己写了一个小函数,去判断ACK插在中间,整个过程就OK了。

          重点就是:要自己想办法判断ACK才能再发下一个数据。这是我现在的做法,召唤更好或者更正确的做法。
      要避免一见钟情的沉沦,记得不要看她第一眼。
      Powered by LeadBBS 9.2 .
      Page created in 0.0938 seconds with 6 queries.