蓝桥国赛之底层易错总结

再码底层,发现又有好多细节忘了,这里特地记录下。


1、..\SOURCE\LED.C(3): error C129: missing ';' before 'LedChar'的奇怪错误

找了半天发现自己忘了定义u8, u16 ,u32的具体类型,然后一直提示这个毫无相干,也不知道怎么联系的错误。低级!!!

这里写图片描述

2、这个顺序是和数码管的怎么显示是有关系的!

这里写图片描述

我们想要的是左边代表做高位,右边代表最低位,所以写0x80!然后移位操作。

3、注意1302的突发读和写的时候,前面是有一句指令的!

这里写图片描述

0-写  1-读    对应BF读  BE写

同样对E2PROM也适用,0x50写, 再或上0x01就是读了!

4、1302突发读时需要注意,最后加上DS1302_IO = 0;

扫描二维码关注公众号,回复: 1525949 查看本文章

这里写图片描述

5、关于结构体操作时钟芯片1302时需要注意:
这里写图片描述

  • 输入参数是结构体时,访问不能使用点运算符
  • buf数组的大小,年月日时分秒周,所以八个是最好了,不要忘了周
  • 还有就是数组下标和表示含义的对应关系,7-没有含义(最好不要省略一并加上),6-年 4-月 3-日 2-时 1-分 0-秒 5-周

6、18B20中的一个问题

这里写图片描述

这里写图片描述

注意对比时序图,最后一句while很关键啊!

一个找了半天的错误,,,,
这里写图片描述

光想温度不对,底层都对,咋没想到刷新的时候需要不断开启呢?

还有几个指令
这里写图片描述

这两个指令容易忘记

我的天,18B20每位写完之后必须释放总线!!!

这里写图片描述

7、关于I2C底层

这里写图片描述

写完进行读取回应和正常读的过程都是一样的,先确保数据总线释放,然后拉高SCL,然后读取。

i2c中用到了延时是5us

这里写图片描述

8、关于E2PROM中需要addr++的事

读是可以连续的,只需要控制好buf++以及len--就可以。

写虽然也可以连续写,但是有一个跨页问题,需要特别处理,所以需要对addr++后进行检测, 判断是否是跨页!!!

这里写图片描述

9、8591较E2写法略有不同,一旦没有检测到就返回,而不是像E2一样重复检测!

这里写图片描述

猜你喜欢

转载自blog.csdn.net/recclay/article/details/80418997