标题:
关于单片机AT24c02 IIc程序,读一个字节问题
[打印本页]
作者:
zzz84411285
时间:
2021-1-16 23:49
标题:
关于单片机AT24c02 IIc程序,读一个字节问题
/******************************************************/
//函数名称:IIc_Read_byte
//函数介绍:iic 读一个字节数据
//
/******************************************************/
uint8 IIc_Read_byte(void){
uint8 dataRead,i;
for(i=0;i<8;i++){
dataRead <<=1;
SCL=0;
SDA=1;
_nop_();
_nop_();
SCL=1;
_nop_();
if(SDA)dataRead |=0x01;
_nop_();
SCL=0;
_nop_();
// dataRead <<=1; //经过验证左移放着里不行
}
return dataRead;
}
这个dataRead放第一行和放在末尾有什么区别,放末尾的话就读不到完整字节了,芯片是AT24c02
作者:
wulin
时间:
2021-1-17 07:23
dataRead初始默认=0x00,开始左移1位,低位补0还是0x00。由高到低循环8次读取1个字节,dataRead只能有效移位7次。如果dataRead <<=1;放末尾的话最高位就溢出了。
作者:
zzz84411285
时间:
2021-1-17 08:13
本帖最后由 zzz84411285 于 2021-1-17 08:21 编辑
wulin 发表于 2021-1-17 07:23
dataRead初始默认=0x00,开始左移1位,低位补0还是0x00。由高到低循环8次读取1个字节,dataRead只能有效移 ...
我明白了,谢谢你,我回去试几遍
作者:
人人学会单片机
时间:
2021-1-17 08:31
我的这两个贴子 都是DS3231的 用的是IIC协议 希望对你有帮助
http://www.51hei.com/bbs/dpj-200965-1.html
http://www.51hei.com/bbs/dpj-200966-1.html
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1