Bootstrap

STM32:GPIO及AFIO函数简介

 

GPIO:

1. GPIO_Init 函数

  • 作用:用于初始化一个或多个 GPIO 引脚的各种参数,包括引脚模式(输入、输出、复用功能等)、输出类型(推挽、开漏)、输出速度、上拉 / 下拉电阻等设置。通过该函数可以将 GPIO 引脚配置成符合特定应用需求的状态。

2. GPIO_SetBits 函数

  • 作用:将指定的 GPIO 引脚设置为高电平。例如,如果已经将某个 GPIO 引脚配置为输出模式用于控制 LED 的亮灭,调用该函数就可以使该 LED 点亮(假设高电平点亮 LED)。

3. GPIO_ResetBits 函数

  • 作用:将指定的 GPIO 引脚设置为低电平。同样以 LED 控制为例,调用该函数可使已经配置为输出模式的 GPIO 引脚输出低电平,从而熄灭 LED(假设低电平熄灭 LED)。

4. GPIO_Write 函数

  • 作用:可以一次性写入多个 GPIO 引脚的电平状态。它接受一个整数值作为参数,该整数值的每一位对应一个 GPIO 引脚的电平状态,通过这种方式可以同时控制多个引脚的输出电平,适用于需要同时对多个相关 GPIO 引脚进行操作的场景。

5. GPIO_ReadInputData 函数

  • 作用:读取指定 GPIO 端口所有引脚的输入数据状态。它返回一个整数值,该整数值的每一位对应一个 GPIO 引脚的输入电平情况,通过分析这个整数值可以了解到整个端口所有引脚接收到的电平信息。

6. GPIO_ReadInputDataBit 函数

  • 作用:前面已经详细介绍过,主要用于读取指定 GPIO 引脚当前的输入数据位状态,即确定某个配置为输入模式的 GPIO 引脚接收到的是高电平还是低电平。

7. GPIO_ReadOutputData 函数

  • 作用:读取指定 GPIO 端口所有引脚的输出数据状态。返回一个整数值,其每一位对应一个 GPIO 引脚的输出电平情况,可用于了解整个端口所有已配置为输出模式的引脚的输出电平状况。

8. GPIO_ReadOutputDataBit 函数

  • 作用:同样前面已详细介绍,用于读取指定 GPIO 引脚的输出数据位状态,明确某个已配置为输出模式的 GPIO 引脚当前正在输出的是高电平还是低电平。

9. GPIO_PinLockConfig 函数

  • 作用:用于锁定 GPIO 引脚的配置,防止意外修改。一旦锁定,通过常规的 GPIO 配置函数将无法再对锁定的引脚进行重新配置,增加了系统的稳定性和安全性,适用于那些配置完成后不希望被轻易改动的关键引脚。

10. GPIO_EMI_Configure 函数

  • 作用:在一些涉及电磁干扰(EMI)防护的应用场景中,该函数用于配置 GPIO 引脚的电磁兼容性相关参数,比如调整引脚的输出驱动能力等,以降低电磁干扰对系统的影响,提高系统的电磁兼容性

AFIO:

1. AFIO_Init 函数

  • 作用:用于初始化 AFIO 模块。这通常涉及到对 AFIO 相关寄存器进行一些默认设置,比如复位某些复用功能相关的配置状态,为后续更具体的复用功能配置做好准备。在开始进行详细的 AFIO 复用功能设置之前,一般需要先调用此函数来确保 AFIO 模块处于一个合适的初始状态。

2. AFIO_EventControl 函数

  • 作用:用于控制与 AFIO 相关的事件触发机制。它可以设置是否允许某些特定事件(如外部中断事件等)通过 AFIO 模块来触发相关的响应动作。例如,在一些应用场景中,当需要精确控制外部中断等事件的触发条件及响应方式时,就可以通过该函数来进行设置,决定哪些事件能够触发后续动作以及如何触发。

3. AFIO_GetRemapping 函数

  • 作用:用于获取当前 AFIO 模块下各个 GPIO 引脚复用功能的重映射状态。通过该函数可以了解到哪些 GPIO 引脚的复用功能已经被重映射到了其他引脚或者不同的寄存器位置,这对于在复杂系统中准确把握 GPIO 引脚的实际功能分布以及排查可能出现的功能异常情况非常有用。

4. AFIO_SetRemapping 函数

  • 作用:与 AFIO_GetRemapping 函数相对应,此函数用于设置 AFIO 模块下各个 GPIO 引脚复用功能的重映射情况。可以根据具体的应用需求,将某些 GPIO 引脚的复用功能重映射到其他引脚或者不同的寄存器位置,以实现更灵活的硬件资源利用和系统设计。例如,在一些布局紧凑的电路板设计中,通过合理的重映射可以避免布线拥挤等问题,同时也能更好地满足特定应用场景下对硬件功能的要求。

5. AFIO_Remap 函数

  • 作用:这是一个更为具体的重映射函数,它可以对特定的复用功能进行重映射操作。不同的 STM32 型号可能支持不同的复用功能重映射选项,通过该函数可以按照具体的应用需求对这些特定的复用功能进行重映射,使得相应的硬件功能能够在不同的 GPIO 引脚或者寄存器位置上得以实现,进一步提高了硬件资源的利用效率和系统设计的灵活性。

6. AFIO_RemapSPI1 函数

  • 作用:专门用于对 SPI1 复用功能进行重映射的函数。在一些应用场景中,可能需要将 SPI1 的复用功能从原来的 GPIO 引脚重映射到其他引脚,以便更好地适应电路板布局、避免布线干扰等问题,或者满足其他特定的应用需求。通过调用此函数,可以方便地实现 SPI1 复用功能的重映射操作。

7. AFIO_RemapSPI2 函数

  • 作用:类似于 AFIO_RemapSPI1 函数,专门用于对 SPI2 复用功能进行重映射的操作。通过该函数可以将 SPI2 的复用功能从原来的 GPIO 引脚重映射到其他引脚,以满足不同的应用需求,如优化电路板布局、提高电磁兼容性等。

8. AFIO_RemapUSART1 函数

  • 作用:用于对 USART1 复用功能进行重映射的函数。当需要将 USART1 的复用功能重新安排到其他 GPIO 引脚时,通过调用此函数可以实现这一目的,以便更好地满足系统设计的要求,比如适应电路板布局、减少布线难度等。

9. AFIO_RemapUSART2 函数

  • 作用:与 AFIO_RemapUSART1 函数类似,是用于对 USART2 复用功能进行重映射的函数。通过该函数可以将 USART2 的复用功能从原来的 GPIO 引脚重映射到其他引脚,以实现更灵活的系统设计和更好的硬件资源利用

10. AFIO_RemapUSART3 函数

  • 作用:用于对 USART3 复用功能进行重映射的函数。通过调用此函数,可以将 USART3 的复用功能从原来的 GPIO 引脚重映射到其他引脚,以满足不同的应用需求,如优化电路板布局、提高电磁兼容性等。

11. AF20_RemapTFTLCD 函数

  • 作用:用于对 TFTLCD 相关复用功能进行重映射的函数。在涉及到 TFTLCD 显示设备的应用场景中,通过调用此函数可以将 TFTLCD 的相关复用功能从原来的 GPIO 引脚重映射到其他引脚,以适应不同的电路板布局、提高电磁兼容性等,从而更好地实现 TFTLCD 的显示功能。

12. AFIO_RemapCamera 函数

  • 作用:用于对相机相关复用功能进行重映射的函数。在包含相机模块的应用场景中,通过调用此函数可以将相机相关复用的功能从原来的 GPIO 引脚重映射到其他引脚,以适应不同的电路板布局、提高电磁兼容性等,从而更好地实现相机的相关功能。

 

;