发布网友 发布时间:2022-04-22 18:32
共1个回答
热心网友 时间:2023-07-02 03:18
当串行数据线上数据为1时,一个8位二进制变量dat和0x01求或,则最低位被置1,如果数据线上为0电平,则不进行这个或操作,最低位保持原状0,因此即读得一位串行数据保存在dat的最低位,然后把dat这个数据左移一次,最低位被推向次低位,空出最低位(变为0),下一个时钟里,再进行第二次这样的读操作,得两位二进制数,经过8次即读得到串囗发送的一个字节,最先发的那位数据移到了最高位 注意是读8次,左移7次
如果发送时先发送低位(spI串口发数据有时高位在前,有时低位在前)就要将其读入最高位(和0x80进行"或"操作),然后右移,同样是8次可以读得一个字节数据