详见【正点原子】 手把手教你学STM32 系列视频之 STM32F4-基于探索者F407
管脚查询
GPIO可以通过ST官方的数据手册《STM32F4ZGT6.pdf》p46页开始获得每一个管脚的详细功能解释,截取一页做例子:
FT代表5v容忍
GPIO的8种工作模式:
4种输入模式
浮空下半部分电路不工作
用于AD转换,输入到ADC
4种输出模式
2的输出控制电路输入1,NMOS不导通输出1则4567输入取决于外部信号
2的输出控制电路输入0,NMOS导通输出0,io端口被下拉则输入为0
差别在于不是由CPU写寄存器而是由复用功能外设控制输出
注意包括了PMOS管
2的输出控制电路输入1,NMOS不导通输出1,io端口被上拉则输入为1
2的输出控制电路输入0,NMOS导通输出0,io端口被下拉则输入为0
复用输入不同而已
以上图是M3的,M4是最上面的结构
开漏输出下输出1的电平是由外部上下拉决定的。
推挽输出下输出1是强高电平
GPIO相关配置寄存器
每一组IO都含有上面10个寄存器,F4一共有7组共70个寄存器!
具体寄存器查询《STM32F4XX中文参考手册》7.4节,讲的很清楚,就没必要当搬运工了QAQ
注意GPIO 端口输出数据寄存器 (GPIOx_ODR) (x = A…I)和GPIO 端口置位/复位寄存器 (GPIOx_BSRR) (x = A…I)的区别:
ODR寄存器置为1则输出为1,置为0则对IO口不产生影响(使用BSRR中的低16位)
BSRR寄存器BSy置为1则输出为1,置为0则对IO口不产生影响
BSRR寄存器BRy置为1则输出为0,置为0则对IO口不产生影响
另外,所有IO口都可以作为中断输入