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条回答
yu1347385993
1楼-- · 2019-08-14 06:37
看一下中文参考手册的GPIOC_CRH寄存器你就明白了
a1109985267
2楼-- · 2019-08-14 10:06
这个是对GPIO口的配置吧
hgr211
3楼-- · 2019-08-14 14:37
 精彩回答 2  元偷偷看……
Zapateado
4楼-- · 2019-08-14 19:26
这代码没毛病 去看看中文参考手册
BJTT
5楼-- · 2019-08-14 22:07
老铁,没毛病,这里是模拟I2C,实际上就是对于GPIO口的配置,配置它的输入输出模式,速度等等
可以参考STM32中文参考手册的114页   端口配置高寄存器(GPIOx_CRH) (x=A..E)
cdjybchz
6楼-- · 2019-08-15 02:30
#define SDA_IN()  {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8<<12;}是不是应该改成#define SDA_IN()  {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8<<11;}左移11位操作的才是PC11????

一周热门 更多>