在 STM32中选用 IO 模式
(1) 浮空输入 _IN_FLOATING —— 浮空输入,可以做 KEY 识别, RX
(2)带上拉输入 _IPU—— IO 内部上拉电阻输入
(3)带下拉输入 _IPD—— IO内部下拉电阻输入
(4) 模拟输入 _AIN —— 应用 ADC 模拟输入,或者低功耗下省电
(5)开漏输出 _OUT_OD —— IO 输出 0接 GND , IO 输出 1,悬空,需要外接上拉电阻,才能 实现输出高电平。当输出为 1时, IO 口的状态由上拉电阻拉高电平,但由于是开漏输出模式, 这样 IO 口也就可以由外部电路改变为低电平或不变。 可以读 IO 输入电平变化, 实现 C51的 IO 双向功能
(6)推挽输出 _OUT_PP —— IO 输出 0-接 GND , IO 输出 1 -接 VCC ,读输入值是未知的
(7)复用功能的推挽输出 _AF_PP —— 片内外设功能(I2C 的 SCL,SDA )
(8)复用功能的开漏输出 _AF_OD—— 片内外设功能(TX,MOSI,MISO,CLK,NSS )
STM32设置实例:
(1)模拟 I2C 使用开漏输出 _OUT_OD,接上拉电阻,能够正确输出 0和 1;读值时先
GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然后可以读 IO 的值;使用
GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);
(2)如果是无上拉电阻, IO 默认是高电平;需要读取 IO 的值,可以使用带上拉输入 _IPU和 浮空输入 _IN_FLOATING和开漏输出 _OUT_OD;
但是在 hal库 L475移植时 GPIO 模式 不一样了 怎么对应的,怎么配置? IPUL475在HAL库中没有,怎么解决? CRL,CHL也没有找到 怎么解决,还有 SPI重映射也没有找到句柄;就是学习中遇见的几个问题,希望大神予以授业解惑
|