打印
[AVR单片机]

24c02存储器

[复制链接]
2461|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
willym|  楼主 | 2011-5-13 22:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
uchar   Start()
{
      TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
      while(!(TWCR&(1<<TWINT)));
      if(TWSR&0xF8 != 0X08)
            return error();
}
这是ATMEGA16数据手册上给的代码,24c02发送START信号,为什么我程序一直在while语句处循环,出不来,不能往下执行?

相关帖子

沙发
chenczy| | 2011-5-14 11:41 | 只看该作者
初始设置是不是少了点什么东西?

使用特权

评论回复
板凳
chenczy| | 2011-5-14 11:42 | 只看该作者
我用的是铁电,工作完全正常

使用特权

评论回复
地板
airwill| | 2011-5-14 12:06 | 只看该作者
情况有
1. 24c02 是坏的, 或者供电不良, 或者和单片机连线有问题.
2. ATMEGA16 的 I2C 初始化操作有问题(包括 IO 端口初始化).
3. 24c02 内部锁死了, 详细看 24c02 的手册的 MEMORY RESET 和解决办法

使用特权

评论回复
5
willym|  楼主 | 2011-5-14 14:26 | 只看该作者
4# airwill

24C02应该没问题,我用51能顺利地读写,用AVR模拟IIC时序也能顺利读写,用两线串行接口TWI就顺利执行了。
void TWI_init()
{
    PORTC = 0x00;
    DDRC = 0xFF;
    TWBR = 20;
    TWSR = 0x00;
    TWAR = 0x00;
    TWCR = 0x44;
}

初始化有问题吗?

使用特权

评论回复
6
chenczy| | 2011-5-16 15:44 | 只看该作者
初始化没问题,我的也是这样的

使用特权

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

本版积分规则

0

主题

7

帖子

1

粉丝