问题1:从这个图片上可以看出这两个在IIC的.c文件里延时时间不一样,第一张图使用了15个_nop_();
12M晶振机器周期是 1/12M*12=1uS;nop()要延时1个指令周期。延时时间不对会对时序产生影响,时序不对,则AT24C02有没被使用的可能,极有可能无法启动,造成程序无法正常使用AT24C02。
在IIC.c文件里iic总线启动、总线停止、发送应答、等待应答、发送数据、接收数据都使用到了这个延时,要格外注意。考到这个内容会在赛点资源包里会有这个的底层驱动文件,可以直接使用,但是在后面的读和写函数是要自己去编写的。
问题2:在图片里可以看出我在书写的时候把“=”写成了“-”,这是一个赋值语句,并不会产生语法错误,不会报错。也可以正常读取数据,但是保存时发现无法保存这个数据,在排查的过程中发现实际是因为书写错误的原因没有成功赋值,导致数据无法保存为修改的参数。