GPIO代表的是通用输入输出口,这是stm32上最常用也是最基本的外围接口之一。stm32的GPIO口是强大而灵活的,可以通过软件配置来实现输入输出、复用、模拟和中断等功能。GPIO口分为2部分,一部分是P端口,一部分是Q端口,P端口有16个GPIO口,Q端口有15个GPIO口,共计31个GPIO口。GPIO口可以与其他外围设备连接起来,例如LCD显示器、LED灯、按键等各种传感器模块。通过控制GPIO口的电平信号可以驱动这些外围设备的工作。
USART是通用同步/异步收发传输器的缩写,通过USART接口,stm32可以实现双向串行通讯,包括涵盖RS232、RS485、IRDA等多种通讯协议。stm32的USART口有4个,分别是USART1、USART2、USART3和UART4。USART口可以连接各种串口设备,例如PC机、GPS、蓝牙模块、红外遥控器等。同时,USART支持DMA(直接存储访问)模式,可以大大提高数据传输效率。
SPI是串行外设接口的简写,它是一种高速数据传输的协议。stm32的SPI口有2个,分别是SPI1和SPI2。SPI接口有4条数据线,包括MOSI(主输出从输入)、MISO(主输入从输出)、SCK(时钟线)和SS(从设备片选),除此之外还有供电和地线。SPI接口是一种离线传输的模式,传输速度可以达到几十Mbps,适用于数据量较大的设备,并且可以通过CS(从设备片选)来控制多个设备的数据传输。
I2C是一种支持多主多从的串行总线协议,stm32的I2C口有2个,分别是I2C1和I2C2。I2C接口只需要2根线即可完成数据的收发和控制,适合于小型设备之间的互联互通。I2C接口的数据传输速度比SPI接口低,通常在几百kbps左右。