ministm32f103的iic的SDA_IN()与SDA_OUT()宏定义是不是有误????

2019-08-14 06:22发布

#define SDA_IN()  {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8<<12;}
#define SDA_OUT() {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=3<<12;}

//IO操作函数         
#define IIC_SCL    PCout(12) //SCL
#define IIC_SDA    PCout(11) //SDA         
#define READ_SDA   PCin(11)  //输入SDA

#define SDA_IN()  {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8<<12;}这是不是定义成时钟了呢?谢谢!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
BJTT
2019-08-15 06:32
cdjybchz 发表于 2017-8-7 12:41
#define SDA_IN()  {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8CRH|=8

#define SDA_IN()  {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8<<12;}
这一条本来就是把PC11模拟成SDA了,你的PC12是被模拟成SCL,这个你要分清楚

比如你要把PC8模拟成SDA,那就是
#define SDA_IN()  {GPIOC->CRH&=0XFFFFFFF0;GPIOC->CRH|=8<<0;}
比如你要把PC9模拟成SDA,那就是
#define SDA_IN()  {GPIOC->CRH&=0XFFFFFF0F;GPIOC->CRH|=8<<4;}

自己对比一下

一周热门 更多>