因为程序中时序有点问题,没有验证上面的设置是否正确,下面的是最终程序中端口的设置。
#define SDA_Out_High() {DioOce(pADI_GP2,0x00);DioOen(pADI_GP2,0x03);DioSet(pADI_GP2,0x02);}#define SDA_Out_Low() {DioOce(pADI_GP2,0x00);DioOen(pADI_GP2,0x03);DioClr(pADI_GP2,0x02);}#define SCL_Out_High() {DioOce(pADI_GP2,0x00);DioOen(pADI_GP2,0x03);DioSet(pADI_GP2,0x01);}#define SCL_Out_Low() {DioOce(pADI_GP2,0x00);DioOen(pADI_GP2,0x03);DioClr(pADI_GP2,0x01);}#define SDA_In() {DioOce(pADI_GP2,0x00);DioOen(pADI_GP2,0x01);}
后验证这种设置正确,供大家参考。
P2.0接时钟SCL,P2.1接SDA,P2.0始终为输出,P2.1输出发送数据,输入接收数据,用普通IO口模拟I2C。
因为程序中时序有点问题,没有验证上面的设置是否正确,下面的是最终程序中端口的设置。
#define SDA_Out_High() {DioOce(pADI_GP2,0x00);DioOen(pADI_GP2,0x03);DioSet(pADI_GP2,0x02);}#define SDA_Out_Low() {DioOce(pADI_GP2,0x00);DioOen(pADI_GP2,0x03);DioClr(pADI_GP2,0x02);}#define SCL_Out_High() {DioOce(pADI_GP2,0x00);DioOen(pADI_GP2,0x03);DioSet(pADI_GP2,0x01);}#define SCL_Out_Low() {DioOce(pADI_GP2,0x00);DioOen(pADI_GP2,0x03);DioClr(pADI_GP2,0x01);}#define SDA_In() {DioOce(pADI_GP2,0x00);DioOen(pADI_GP2,0x01);}
后验证这种设置正确,供大家参考。
P2.0接时钟SCL,P2.1接SDA,P2.0始终为输出,P2.1输出发送数据,输入接收数据,用普通IO口模拟I2C。
举报