本帖最后由 pq113_6 于 2023-3-18 12:35 编辑
请问一下,CH582 硬件I2C,如何发送RESTART,发送完地址后需要再发START
CTRL1 |= RB_I2C_START;
后面的发送数据就失败了,而且只能断电才能再工作。接的是EERPOM,地址时0xA0,下面是打印数据:
Send 0xA0
***********************
CTRL1:401
CTRL2:3c
OADDR1:a0
OADDR2:0
DATAR:0
STAR1:1
STAR2:3
CKCFGR:c006
RTR:13
Send Mem Addr
***********************
CTRL1:401
CTRL2:3c
OADDR1:a0
OADDR2:0
DATAR:0
STAR1:84
STAR2:7
CKCFGR:c006
RTR:13
ReStart
***********************
CTRL1:401
CTRL2:3c
OADDR1:a0
OADDR2:0
DATAR:0
STAR1:84
STAR2:7
CKCFGR:c006
RTR:13
Send 0xA1
***********************
CTRL1:401
CTRL2:3c
OADDR1:a0
OADDR2:0
DATAR:0
STAR1:1
STAR2:3
CKCFGR:c006
RTR:13
Send Byte a1 : 2, 3
Send Byte a1 : 2, 3表示发送地址0xA1错误,返回时STAR1和STAR2的值为2,3
|