打印
[AVR单片机]

Atmega8 I2C控制器 read读取16位数据子函数

[复制链接]
3857|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
轻轻电子|  楼主 | 2013-9-27 14:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 轻轻电子 于 2013-9-27 14:57 编辑

用的是16位A/D ADS1110  读取数据高八位AD_H与低八位AD_L   
用的是ATmega16开发板里的程序只是读八位数据  我改了一下先读高八位 再读低八位  但是低八位数据读取不了
///////////////////////////////////////////////111111
    //
    //Wait();
    if(TestAck()!=MR_DATA_NOACK)
    return 1;      //ACK
    AD_L=TWDR;//读取I2C接收数据                                      
///////////////////////////////////////////////222222
    //
       Stop();//I2C停止
    return 177;
   
}


末尾////   //
    //Wait();
    if(TestAck()!=MR_DATA_NOACK)
    return 1;      //ACK
    AD_L=TWDR;//读取I2C接收数据      注释 //111111到//222222这部分是自己写的

只能读取高八位数据 不能读取低八位数据  怎样才能读取低八位数据呢

I2C.H.zip

1.08 KB

相关帖子

沙发
airwill| | 2013-10-3 14:56 | 只看该作者
这就得遵守 ADS1110  的读写规则了.

使用特权

评论回复
板凳
huangxz| | 2013-10-3 22:31 | 只看该作者
为啥说不能读取,你程序上有的啊

使用特权

评论回复
地板
qin552011373| | 2013-10-4 08:28 | 只看该作者
建议仔细看看你用的那个AD的datasheet

使用特权

评论回复
5
轻轻电子|  楼主 | 2013-10-5 16:16 | 只看该作者
恩 我再看看

使用特权

评论回复
6
轻轻电子|  楼主 | 2013-10-6 15:11 | 只看该作者
qin552011373 发表于 2013-10-4 08:28
建议仔细看看你用的那个AD的datasheet

ATmega8的TWI传数据可以连续读取数据吗
我现在试了 有低八位数据但全为高电平  而且无论读取高八位数据后怎样操作 读高八位数据后都产生的的是非应答

使用特权

评论回复
7
JasonWangSE| | 2013-10-22 19:02 | 只看该作者
读高8位后的ACK是要由主发送的,即读完高8位,单片机应该发一个ACK,然后读低8位,然后再发NACK,然后再发STOP

使用特权

评论回复
8
2396822329| | 2015-3-28 23:33 | 只看该作者
楼主 请问你的问题解决没?我也遇到这种情况le

使用特权

评论回复
9
allance| | 2019-4-23 21:34 | 只看该作者
我也遇到了一样的情况,跪求解决方法,我的qq284708212,十分感谢

使用特权

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

本版积分规则

1

主题

5

帖子

0

粉丝