bias 发表于 2021-5-20 14:10:12

TK499用两IO模拟I2C,IO设置不了开漏输出应该怎么设?

好像没有办法设置成开漏输出

初音之恋 发表于 2021-5-20 14:19:19

发送前设置成推挽输出,接受前设置为输入就行了,不需要开漏

bias 发表于 2021-5-20 14:27:27

初音之恋 发表于 2021-5-20 14:19
发送前设置成推挽输出,接受前设置为输入就行了,不需要开漏

谢谢

主要这样还要调整方向,以前F103直接可以开漏输出,外面加上拉就可以正常工作了。

看TK499的HAL_GPIO.h里面有开漏输出
typedef enum
{
GPIO_Mode_AIN = 0x0,//模拟输入
GPIO_Mode_IN_FLOATING = 0x04, //浮空输入
GPIO_Mode_IPD = 0x28,//下拉输入
GPIO_Mode_IPU = 0x48,//上拉输入
GPIO_Mode_Out_OD = 0x14,//通用开漏输出
GPIO_Mode_Out_PP = 0x10,//通用推免输出
GPIO_Mode_AF_OD = 0x1C, // 复用开漏输出
GPIO_Mode_AF_PP = 0x18//复用推免输出
}GPIOMode_TypeDef;


但是在寄存器说明里面有没有这个选项:




设置方向可以理解,要是设置推挽/输入切换不需要上拉电阻就好了。
好像记得在那儿看到过这样设置,加上 SCL也推挽输出,可以不用上拉.


ycheng2004 发表于 2021-5-20 14:34:37

初音之恋 发表于 2021-5-20 14:19
发送前设置成推挽输出,接受前设置为输入就行了,不需要开漏

+1
对的,或加个二极管,

ycheng2004 发表于 2021-5-20 14:37:58

bias 发表于 2021-5-20 14:27
谢谢

主要这样还要调整方向,以前F103直接可以开漏输出,外面加上拉就可以正常工作了。


看这个寄存器:Mode_Out_OD = 0x14,//通用开漏输出

bias 发表于 2021-5-20 14:46:50

ycheng2004 发表于 2021-5-20 14:37
看这个寄存器:Mode_Out_OD = 0x14,//通用开漏输出

实际好像没用
页: [1]
查看完整版本: TK499用两IO模拟I2C,IO设置不了开漏输出应该怎么设?