楼上几位的解释 正解。。。。但是说实话,这段代码写的不咋的。。个人觉得,楼主需要注意这几个方面,
1、要熟悉这种学习过程。一般而言,要用到iic或者spi 之类的,又要用到io端口模拟通信, 需要先了解这些通信协议,然后再尝试自己写,可以参考别人的代码,最后再测试,这样子才能进步, 要是一开始就看别人的代码,效果估计不是很好, 主要是 c语言太灵活了,先不论别人写的代码质量如何,光是那些时序就有多种实现方法,不然下次别人换中表示方法,就要迷糊......还有就是读别人代码,本来就比自己写代码费事.....
2、此外,建议楼主熟悉一下c语言的基本语法。 楼主的那两处疑惑都是关于位操作的。。。特定位 置1 或者清0, 这个不难,熟悉一下就好...很快上手
3、就以上代码段而言, 第一处,按照 先高位,再低位发送的顺序,肯定每次判断是最高有效位,所以需要屏蔽掉其他位,第二处,判断此时io的电平高低,来确定此时收到的位是 1还是 0, 那么置对应的位.......
楼上几位的解释 正解。。。。但是说实话,这段代码写的不咋的。。个人觉得,楼主需要注意这几个方面,
1、要熟悉这种学习过程。一般而言,要用到iic或者spi 之类的,又要用到io端口模拟通信, 需要先了解这些通信协议,然后再尝试自己写,可以参考别人的代码,最后再测试,这样子才能进步, 要是一开始就看别人的代码,效果估计不是很好, 主要是 c语言太灵活了,先不论别人写的代码质量如何,光是那些时序就有多种实现方法,不然下次别人换中表示方法,就要迷糊......还有就是读别人代码,本来就比自己写代码费事.....
2、此外,建议楼主熟悉一下c语言的基本语法。 楼主的那两处疑惑都是关于位操作的。。。特定位 置1 或者清0, 这个不难,熟悉一下就好...很快上手
3、就以上代码段而言, 第一处,按照 先高位,再低位发送的顺序,肯定每次判断是最高有效位,所以需要屏蔽掉其他位,第二处,判断此时io的电平高低,来确定此时收到的位是 1还是 0, 那么置对应的位.......
举报