1.在STM32的数据手册中,引脚定义中的I/O structure中如果是FT的话,说明该引脚兼容5V;
2.IO口一般都有多个功能,可以通过寄存器的设置来选择其IO口的功能,F1还有重映射的概念,F4没有;
3.IO口分为两种情况:一个是完全独立的IO(不能有任何外设连接的IO,一般比较少)(如ADC采集);一种是允许IO口挂其他外设,但是必须可以单独做输入、输出使用。
4.基本外设:GPIO输入输出,外部中断,定时器,串口。这四个基本外设任何一款MCU都有;然后是一些高级的通信外设如SPI,IIC,WDG,FSMC,ADC/DAC,SDIO等;再是一些高级功能的应用了,如UCOS,EMWIN等;
5.Cortex-M4采用ARMv7-ME架构,此架构定义了三大分工明确的系列:“A”系列:面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列:针对实时系统;“M”系列:对微控制器。
6.GPIO:STM32F407ZGT6有7组IO口,每组IO口有16个IO,一共有112个IO,从GPIOA~GPIOG.
7.STM32的大部分引脚除了当GPIO使用外,还可以复用为外设功能引脚(比如串口,定时器,IIC等)。
8.GPIO的工作方式:4种输入模式:输入浮空,输入上拉,输入下拉,模拟输入;4种输出模式:开漏输出(带上拉或者下拉),开漏复用功能(带上拉或者下拉),推挽式输出(带上拉或者下拉),推挽式复用功能(带上拉或者下拉);具体区别可以参考STM32八种IO口模式区别.pdf;4种最大输出速度:2MHZ\25MHZ\50MHZ\100MHZ.
9.推挽输出可以输出强高低电平,适合连接数字器件;开漏输出只可以输出强低电平,高电平得靠外部电阻拉高。适合做电流型的驱动。
10.每组GPIO端口的寄存器包括如下图:
11.端口模式寄存器(GPIOx_MODER)如下:
12.端口输出类型寄存器(GPIOx_OTYPER)如下:
13.端口输出速度寄存器(GPIOx_OSPEEDR)如下:
14.端口上拉\下拉寄存器(GPIOx_PUPDR)如下:
15.端口输入数据寄存器(GPIOx_IDR)如下:
16.端口置位/复位寄存器(GPIOx_BSRR)如下:
17.所有的IO口都可以用于中断输入(stm32);