初级会员

- 积分
- 194
- 金钱
- 194
- 注册时间
- 2015-3-14
- 在线时间
- 5 小时
|
5金钱
/*设置I/O方向*/
#define SDA_IN() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<12;}
#define SDA_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;}
他们是设置I/O方向,比如,如果是产生一个开始信号,开始信号程序如下:
void IIC_Start(void)
{
SDA_OUT(); //SDA线输出
IIC_SDA=1;
IIC_SCL=1;
delay_us(4);
IIC_SDA=0
delay_us(4);
IIC_SCL=0;
}
他这里的“SDA线输出”的意思是不是对于MCU来说,是输出的意思。
而在产生应答信号的程序里面:
u8 IIC_Wait_Ack(void)
{
u8 ucErrTime=0;
SDA_IN(); //SDA线输入
IIC_SDA=1;
delay_us(1);
IIC_SCL=1;
delay_us(1);
while(READ_SDA)
{
ucErrTime++;
if(ucErrTime>250)
{
IIC_Stop();
return 1;
}
}
IIC_SCL=0;
return 0;
}
这里的“SDA线输入”,是不是对于MCU来说,是输入的意思。
我理解的对不对啊,求大神解答!
|
|