同一组GPIO可以部分设置成开漏输出部分设置成推挽输出吗?同一组GPIO可以部分设置成开漏输出部分设置成推挽输出吗?谢谢:单片机的GPIO基本上都可以单独设置输入输
单片机的GPIO基本上都可以单独设置输入输出
输入输出是单片机GPIO最基本的功能,输出一般可以设置为开漏输出和上拉输出,而输入一般可以设置为上拉输入、下拉输入或者无上下拉输入。有特殊功能的引脚还可以设置为特殊功能,比如UART、SPI、模拟输入等等。
GPIO输入输出设置一般来说,每一组GPIO都有对应用的寄存器用于设置输入或者输出,也有对应的寄存器设置上拉或者下拉。
以Holtek的单片机为例,PAC控制着PA组别GPIO的输入输入设置,PBC控制着PB组别GPIO的输入输入设置,每组8个GPIO都是可以独立设置的,对应的位设置为1为输入,对应的位设置为0则为输出
PxPU寄存器则控制上拉和下拉的设置,每组GPIO也是可以单独设置的,对应的位设置为1则为上拉设计,对应的位设置为0则不带上拉(此单片机没有下拉设置)
不同品牌的单片机的GPIO配置方法有一些差异,但基本上都是可以独立设置的。STM32单片机的GPIO配置就较为丰富了,大家可以研究一下。
- GPIO_Mode_AIN 模拟输入,用于ADC输入
- GPIO_Mode_IN_FLOATING 浮空输入,没有上拉也没有下拉
- GPIO_Mode_IPD 下拉输入
- GPIO_Mode_IPU 上拉输入
- GPIO_Mode_Out_OD 开漏输出
- GPIO_Mode_Out_PP 推挽输出
- GPIO_Mode_AF_OD 复用开漏输出
- GPIO_Mode_AF_PP 复用推挽输出
- 记得点赞和评论哦!非常感谢!