请教下IIC例程中IO方向设置问题

2019-07-21 04:03发布

最近在学习iic读写,看了原子的程序,现在想把IIC端口改到 SCL --PB6,SDA--PB7
请教下下面这个IO方向设置要如何修改?
#define SDA_IN()  {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<12;}
#define SDA_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
hzz
1楼-- · 2019-07-23 11:54
本帖最后由 hzz 于 2018-6-27 19:15 编辑
123精灵123 发表于 2018-1-18 15:12
原子哥,那如果我把IIC的SDA改为PB11,SCL改为PB10,IO的方向设置该怎么配置?

GPIOx->CRL(引脚的0-7脚),GPIOx->CRH(引脚的8-16脚),然后一个端口用4位来控制模式

改为如下:
    #define SDA_IN()       {GPIOB->CRH&=0xFFFF0FFF;GPIOB->CRH|=(u32)8<<12;}
    #define SDA_OUT()    {GPIOB->CRH&=0xFFFF0FFF;GPIOB->CRH|=(u32)3<<12;}
    //IO操作函数
    #define IIC_SCL          PBout(10)   //SCL
    #define IIC_SDA         PBout(11)   //SDA
    #define READ_SDA    PBin(11)    //输入SDA
长昵称不被占用
2楼-- · 2019-07-23 15:12
正点原子 发表于 2013-7-21 01:14
#define&nbsp;SDA_IN()&nbsp;&nbsp;{GPIOB-&gt;CRL&=0X0FFFFFFF;GPIOB-&gt;CRL|=(u32)8&lt;&lt;28;}
#define&nb ...

请教  既然配置为推挽输出了,还能设置IO方向是什么意思???谢谢
mickey丶初夏
3楼-- · 2019-07-23 16:30
hzz 发表于 2018-6-27 19:10
GPIOx->CRL(引脚的0-7脚),GPIOx->CRH(引脚的8-16脚),然后一个端口用4位来控制模式

改为如下:

讲解的太好了,瞬间明悟

一周热门 更多>