STM32 GPIO的使用问题(持续更新中.....)

其实,本人用STM32也有一段时间了,可是有些问题的话总是过一段时间就会给忘记了,所以我用这个帖子来记录我碰到的问题.......

1.管脚的复用

GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE);//PB4默认是JTRST功能,只要我们把它的默认时钟关闭了,这么这个管脚就会使用它的复用功能,在这里它的复用功能是普通的GPIO,然后我们对它进行配置就好了。

2.开漏输出

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;

   输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).

      一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。比如加上上拉电阻就可以提供TTL/CMOS电平输出等。上拉电阻的阻值决定了逻辑电平转换的沿的速度 。阻值越大,速度越低功耗越小,所以负载电阻的选择要兼顾功耗和速度

        模拟I2C使用开漏输出_OUT_OD,接上拉电阻,能够正确输出0和1;读值时先GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然后可以读IO的值;使用GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);
3.ADC模块,通道和对应管脚的选择

STM32 GPIO的使用问题(持续更新中.....)_第1张图片

你可能感兴趣的:(stm32)