找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机IIC连续读的问题

查看数: 4766 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-9-2 22:59

正文摘要:

IIC连续读的问题,请大家帮忙看一下这个程序为什么只能读一个字节,哪里错了,,还有程序有什么不太好的地方可以修改,不要重新写的,要在我原有的程序修改并注释,这样我才能看的懂,谢谢 #includ ...

回复

ID:633908 发表于 2019-11-1 17:08
很好,只要端口反转时间不低于要求就行
ID:111517 发表于 2019-11-1 15:08
楼主问题解决了吗?我也遇见了同样的问题
ID:540236 发表于 2019-9-4 20:00
void AT24C02_readData(uchar beginAddr, uchar dataSize)
{  
                uchar i=0;
               
                start();               
    write_1(0xa0);        
    ack();            
    write_1(beginAddr);   
    ack();            
    start();               
    write_1(0xa1);        
    ack();            

        
        
        while(dataSize--)          //你上面main里给你参数是2,就是里面循环了两次
    {  
                                
                                *(buf+i)=read_1();
                                        i++;
                                 Send_ack(); //读两次是发一个ACK加一个Nack;
    }
                nack();
    stop();  
                Delay1(1);
               
               
}  
ID:437615 发表于 2019-9-3 21:35
不用想了,没办法,最后用单字节读再加个循环搞定,就是有点浪费资源
ID:437615 发表于 2019-9-3 19:07
延时的问题试了,除非还有什么我不知道的地方,不然还是不行
ID:365802 发表于 2019-9-3 18:08
zhy123654 发表于 2019-9-3 17:52
现象是这样,写进去后,我用单字节读,就没问题,比如

                buf[0]=IIC_read(0 );

建議讀操作之間加一些延時嘗試一下
ID:437615 发表于 2019-9-3 17:52
ping264888 发表于 2019-9-3 12:52
嗯, 你看看是不是操作太快導致的, 我之前就遇到過.
http://www.51hei.com/bbs/dpj-151160-1.html

现象是这样,写进去后,我用单字节读,就没问题,比如

                buf[0]=IIC_read(0 );
                buf[1]=IIC_read(1 );
                buf[2]=IIC_read(2 );
                buf[3]=IIC_read(3 );

这样就行,所以觉得还是连读函数有问题
ID:365802 发表于 2019-9-3 12:52
嗯, 你看看是不是操作太快導致的, 我之前就遇到過.
http://www.51hei.com/bbs/dpj-151160-1.html
ID:437615 发表于 2019-9-3 11:07
xhaity 发表于 2019-9-3 10:11
不是只读一个,你是只显示一位

是这样的,我把4个都写进去,然后再读出来,我先显示buf[0]是正确的,然后我又显示buf[1],结果就不对了
ID:373388 发表于 2019-9-3 10:11
不是只读一个,你是只显示一位

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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