摄影网站有哪些?,专业全网优化,源码下载免费,沈阳网络科技公司有哪些在通信之初#xff0c;主从机必须根据自己的要求约定好通信规则#xff1a;command的定义和位置、address的位数和位置。 以读写从机寄存器数据为例#xff1a; 假设从机寄存器地址为8位、从机寄存器也位8位#xff08;被读取数据为8位#xff09;#xff1b; 约定读comm… 在通信之初主从机必须根据自己的要求约定好通信规则command的定义和位置、address的位数和位置。 以读写从机寄存器数据为例 假设从机寄存器地址为8位、从机寄存器也位8位被读取数据为8位 约定读command为0x01写command位0x02 约定主机发起通信后第一个slave address字节收到ack后紧跟的一个字节为command再下面一个字节为address。 1. 读寄存器数据步骤 1.1 主机先发起一次通信将读command(0x01)和需要读取的寄存器地址address写入从机主机发出写操作 1.2 从机firmware的处理 1.2.1 将command和address分别提取出来 1.2.2 判断command的含义本例中是读指令还是写指令 1.2.3 根据收到的的address将对应寄存器的的数据放入从机I2C输出buffer这个步骤可以使用指针 1.3 主机再次发起一次通信读取从机的数据主机发出读操作 2. 写操作步骤 2.1 主机发起通信按约定依次写入command、要写入的从机寄存器地址address和要写入的数据data 2.2 从机firmware要做的处理 2.2.1 分别提取command、address和data 2.2.2 根据command做出判断本例中则判断是写入还是读取 2.2.3 将data写入与接收到的address对应的寄存器。这个步骤可以使用指针。