CH32V003F4U6单片机I2C从机模式,用arduino i2c scan例程扫描不到从机地址,并且规格书没看到从机如何配置的


CH32V003F4U6单片机I2C从机模式,

官方示例是让另一个CH32V003做主机扫描 另外一个做从机,这样虽然可以用,但是显然不能说明I2C 从机就是可以完美工作的,于是我用用arduino i2c scan例程扫描不到从机地址,并且规格书没看到从机如何配置的


void I2C_Init(I2C_TypeDef *I2Cx, I2C_InitTypeDef *I2C_InitStruct)

函数里面有看到 配置模式

 tmpreg |= (uint16_t)((uint32_t)I2C_InitStruct->I2C_Mode | I2C_InitStruct->I2C_Ack);

 I2Cx->CTLR1 = tmpreg;


数据手册上没有看到

I2C 控制寄存器(I2C1_CTLR1)里有配置 主从模式位


您好,关于IIC从机地址的配置,是通过I2C地址寄存器1(I2C1_OADDR1)进行配置的,如下图。关于寄存器具体说明,可参考CH32V003应用手册,手册下载链接如下:

CH32V003应用手册:https://www.wch.cn/downloads/CH32V003RM_PDF.html 

image.png


地址我看到了配置,但是我是问 主从模式 在哪里配置 ? 手册上没写


 tmpreg |= (uint16_t)((uint32_t)I2C_InitStruct->I2C_Mode | I2C_InitStruct->I2C_Ack);

 I2Cx->CTLR1 = tmpreg;


和手册上没有对应的描述


您好,关于IIC主从的初始化配置都是一样的,只是地址的不同。哪个设备需要发送数据,那个设备就作为主机,有权利发送数据,被发送设备就作为从机,只能接收数据。


只有登录才能回复,可以选择微信账号登录