请教下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条回答
正点原子
1楼-- · 2019-07-21 08:39
 精彩回答 2  元偷偷看……
xu271088570
2楼-- · 2019-07-21 11:48
回复【2楼】正点原子:
---------------------------------
原子老师,这样配置IO口是不是因为STM32的寄存器都要32位的方式配置?“|=(32)8<<28”是不是这个意思:定义32位数8,然后左移28位,寄存器再与左移28位后的数做或运算,取或运算的话是为了不影响寄存器原来的设置。
我刚学STM32,以前学51的时候没有遇到这样的赋值方式,在STM32里有很多赋值语句还不是很明白,所以问一下原子老师,如果能得到老师的指点那是我的荣幸!
正点原子
3楼-- · 2019-07-21 12:00
自己多写写代码,联系下,自己就知道了.
一帆风顺,不会得到太多的知识的,多碰几次壁,自然就懂了,而且印象深刻.
guer
4楼-- · 2019-07-21 14:22
谢谢!
悲剧了,我板子上103ZET6的PB11 I/O口坏了,难怪搞了几天24c02读写不了。改到PB6PB7已成功读写。
再次感谢原子!!
正点原子
5楼-- · 2019-07-21 18:00
回复【5楼】guer:
---------------------------------
不客气,呵呵.
freeben09
6楼-- · 2019-07-21 21:28
 精彩回答 2  元偷偷看……

一周热门 更多>