中级会员
- 积分
- 480
- 金钱
- 480
- 注册时间
- 2017-7-29
- 在线时间
- 233 小时
|
发表于 2020-5-21 14:27:57
|
显示全部楼层
同样是M24C64,发现check直接不得,按照楼主的方法改动后就可以了,但是有两个比较有意思的,不是很明白第一是,check我改成
u8 AT24CXX_Check(void)
{
u8 temp;
temp=AT24CXX_ReadOneByte(8191);//±üÃaÿ′οa»ú¶¼D′AT24CXX
if(temp==0X55)return 0;
else//ÅÅ3yμúò»′Î3õê¼»ˉμÄÇé¿ö
{
AT24CXX_WriteOneByte(8191,0X55);
temp=AT24CXX_ReadOneByte(8191);
if(temp==0X55)
return 0;
}
return 1;
}
此时必须按楼主改动的办法才可通过,才能正常读数。
但是如果是把8191改成8190,是可以正常通过该Check,但是长字符串读数时是会出错的。
第二是,我找到AT24C的datasheet,在datasheet上面,stop的时序其实和M24C也是差不多的,按照我的理解,AT24C的stop信号也应该按照楼主的方法拉高才可以吧?而且我尝试了一下,确实改动后也是可以正常读数,这就很奇怪了,难道AT24C对此要求不严格?还是说我对时序理解不到位?
|
|