stm32f103系列中的GPIO管脚工作模式有几种。我粗略的这与GPIO管脚自身的内部电路结构有一定关系,但不是很清楚。
另外,在模拟I2C接口时,SDA既作为输入,也要作为输出,应该配置为GPIO_Mode_AF_OD还是AF_PP,复用功能的输出开漏,这个都说了是输出,怎么还能作为输入,读取数据。
各位老铁,给讲讲,可以多讲一些,关于GPIO不限于我问的。
8种工作模式,可参考看看这篇文章,http://blog.csdn.net/kevinhg/article/details/17490273,比较详细。
至于I2C接口,其实SDA引脚是需要不停设置输入输出方向的,在写的时候设置为输出,在读的时候设置为输入。
即能开漏输出 也 能推挽输出,这两种电路结构都不一样,想必内部有选择开关,根据配置切换。不过没有研究过IO口的内部电路结构。
SDA引脚的话用AF_PP就够了,推挽要输出高电平 需要有上拉电阻才行,不过一般单片机内部可以选择上拉,外部也可以上拉。
开漏适合驱动能力比较强的需求,毕竟有上拉存在。
推挽的结构一个管子导通,另一个管子就高阻态不需要上拉,适合数字器件的通讯。
分时段设置IO 当iic为输出数据时 设置为推换输出 当数据为输入时设置为复用开漏
有8个方式 具体百度
工作模式总共8种,但并不是每个引脚都有这8种工作模式的
至于模拟的I2C,此时应作为普通IO来使用的