2019-07-20 00:34发布
不同 发表于 2019-7-17 12:04 多个相同的设备从机地址一样的,你必须区分开各个设备要不然地址冲突了,比如加片选选择设备,读数据的话先 ...
最多设置5个标签!
- u8 IICreadBytes(u8 dev, u8 reg, u8 length, u8 *data)
- {
- u8 count = 0;
-
- IIC_Start();
- IIC_Send_Byte(dev<<1); //发送写命令
- IIC_Wait_Ack();
- IIC_Send_Byte(reg); //发送地址
- IIC_Wait_Ack();
- IIC_Start();
- IIC_Send_Byte((dev<<1)+1); //进入接收模式
- IIC_Wait_Ack();
-
- for(count=0;count<length;count++)
- {
-
- if(count!=length-1)
- data[count]=IIC_Read_Byte(1); //带ACK的读数据
- else
- data[count]=IIC_Read_Byte(0); //最后一个字节NACK
- }
- IIC_Stop();//产生一个停止条件
- return count;
- }
复制代码这是我读取函数的代码
我在参数里面传入0X50,在函数里面把0X50<<1,然后再+1进入读模式,此时是0xa1对吧?
一周热门 更多>