初级会员

- 积分
- 86
- 金钱
- 86
- 注册时间
- 2018-6-25
- 在线时间
- 24 小时
|

楼主 |
发表于 2018-12-23 19:30:50
|
显示全部楼层
还是不对
#define IIC_SCL PBout(9) //SCL
#define IIC_SDA PBout(8) //SDA
#define READ_SDA PBin(8) //ÊäÈëSDA
SDA设为PB8
#define SDA_IN() {GPIOB->CRH&=0XFFFFFFF0;GPIOB->CRH|=8;}
#define SDA_OUT() {GPIOB->CRH&=0XFFFFFFF0;GPIOB->CRH|=3;}
读函数始终不对 只有0
u8 i2c_read(u8 DEVICE_ID, u8 reg)
{
u8 c=0;
IIC_Start();
IIC_Send_Byte(DEVICE_ID);
IIC_Ack();
IIC_Send_Byte(reg);
IIC_Ack();
IIC_Stop();
IIC_Start();
IIC_Send_Byte(DEVICE_ID | 1);
u8 e= IIC_Wait_Ack();
Gui_StrCenter(0, 190, BLACK, RED, (e?"Error":"OK") ,16, 0);
c = IIC_Read_Byte();
e=IIC_Wait_Ack();
Gui_StrCenter(0, 210, BLACK, RED, (e?"Error":"OK") ,16, 0);
IIC_Stop();
return c;
}
请高手帮我看看时序 对不对
两个IIC_Wait_Ack 换成 IIC_Ack也不对
|
|