stm32f1x,IIC实验代码中,关于数据线SDA设置,GPIOB模式的问题

2019-07-21 07:15发布

IIC实验代码中:
//IO方向设置

#define SDA_IN()  {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;}
#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<28;}

//IO操作函数         
#define IIC_SCL    PBout(6) //SCL
#define IIC_SDA    PBout(7) //SDA         
#define READ_SDA   PBin(7)  //输入SDA

问:其中宏定义中,SDA_IN()定义的是数据输入,但是8<<28bit,代表 bit29:28 ---->11   
                                                                                                   bit31:30 ---->01
代表 通用开漏输出和输出模式,速度50MHz     ,这不就代表输出模式了吗?不是输入模式
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。