完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在看原子大哥24C02的IIC实验例程,看到有个“检查AT24CXX是否正常”的函数有几个问题想请教一下,原函数如下:
//检查AT24CXX是否正常 //这里用了24XX的最后一个地址(255)来存储标志字. //如果用其他24C系列,这个地址要修改 //返回1:检测失败 //返回0:检测成功 u8 AT24CXX_Check(void) { u8 temp; temp=AT24CXX_ReadOneByte(255);//避免每次开机都写AT24CXX if(temp==0X55)return 0; else//排除第一次初始化的情况 { AT24CXX_WriteOneByte(255,0X55); temp=AT24CXX_ReadOneByte(255); if(temp==0X55)return 0; } return 1; } 1、这个检查函数是一定要有的么?如果没有这个函数会怎么样呢? 2、为什么要“避免每次开机都写AT24XX”呢?换句话说,如果没有避免这个,用久了会怎么样呢? 3、这里面的判断了两次temp==0X55,0X55是什么?有什么用的呢? 4、我现在是改写了这个函数,用来检测AT24C16的,请原子大哥和各位高手帮我检查下对不对,十分感谢: //检查AT24CXX是否正常 //这里用了24XX的最后一个地址(255)来存储标志字. //如果用其他24C系列,这个地址要修改 //返回1:检测失败 //返回0:检测成功 u8 AT24CXX_Check(void) { u8 temp; temp=AT24CXX_ReadOneByte(2047);//避免每次开机都写AT24CXX if(temp==0X55)return 0; else//排除第一次初始化的情况 { AT24CXX_WriteOneByte(2047,0X55); temp=AT24CXX_ReadOneByte(2047); if(temp==0X55)return 0; } return 1; } 其实我就是把255改成了2047,其他还需要改么? 不过我下下去了还是检查不到AT24C16~~应该还有地方要改的吧? 5、谢谢原子大哥和各位高手了~~ |
|
相关推荐
3个回答
|
|
1,不一定.没有就无法检测24C02是否存在.
2,因为24C02是EEPROM器件,你可以百度一下EEPROM都有什么特性. 3,就是个标识符,可以随便定义.最好不要是0和0XFF. 4,代码无问题.检测不到请检查代码,你的EE_TYPE修改为24C16了么? |
|
|
|
感谢原子大哥的回复,我是已经将EE_TYPE改成了24C16了,不过还是不能检测,我就在想是不是标志位0X55有问题要改呢。。。然后我用SW调试了下您的那个24C02的正确的程序,发现进行到这个函数的时候,“temp=AT24CXX_ReadOneByte(255);//避免每次开机都写AT24CXX” 这句话执行完后,temp是0XFF,然后后面的else里面的temp也是0XFF,后面就一直这样直接就检测不到了。。。不过不经过调试,直接运行又是可以检测到的,难道不能用SW来调试您的正确程序么?
|
|
|
|
IIC是可以SWD调试的.
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1801 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1629 浏览 1 评论
1096 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
735 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1684 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
745浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
579浏览 3评论
601浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
565浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 12:20 , Processed in 0.928085 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号