英文缩写 名称 英文缩写 名称
NVIC 嵌套向量中断控制器 CAN CAN通信
SysTick 系统滴答定时器 USB USB通信
RCC 复位和时钟控制 RTC 实时时钟
GPIO 通用IO口 CRC CRC校验
AFIO 复用IO口 PWR 电源控制
EXTI 外部中断 BKP 备份寄存器
TIM 定时器 IWDG 独立看门狗
ADC 模数转换器 WWDG 窗口看门狗
DMA 直接内存访问 DAC 数模转换器
USART 同步/异步串口通信 SDIO SD卡接口
I2C I2C通信 FSMC 可变静态存储控制器
SPI SPI通信 USB OTG USB主机接口
  1. ALU: Arithmetic Logic Unit,算术逻辑单元
  2. GPIO: General Purpose Input/Output,通用输入/输出
  3. ADC: Analog-to-Digital Converter,模拟到数字转换器
  4. DAC: Digital-to-Analog Converter,数字到模拟转换器
  5. PWM: Pulse Width Modulation,脉宽调制
  6. UART: Universal Asynchronous Receiver-Transmitter,通用异步收发器

通信协议

  1. ==SPI====: Serial Peripheral Interface,串行外设接口==
  2. ==I2C====: Inter-Integrated Circuit,双线串行接口==
  3. CAN: Controller Area Network,控制器局域网 通信协议-汽车
  4. USB: Universal Serial Bus,通用串行总线

Others

  1. RTC: Real-Time Clock,实时时钟,掉电也可运行
  2. WDT: Watchdog Timer,看门狗定时器
  3. DMA: Direct Memory Access,直接内存访问
  4. IRQ: Interrupt Request,中断请求
  5. LED: Light Emitting Diode,发光二极管
  6. RTC: Real-Time Clock,实时时钟
  7. USB: Universal Serial Bus,通用串行总线
  8. MCU: Microcontroller Unit,微控制器单元
  9. NVIC:Nested Vectored Interrupt Controller嵌套向量中断控制器
  10. External interrupt/event controller (EXTI)外部中断/事件控制器
  11. Serial wire JTAG debug port (SWJ-DP)
  12. Systick:系统滴答定时器
  13. RCC复位和时钟控制
  14. AFIO 复用IO
  15. CRC校验
  16. PWR电源控制,睡眠模式
  17. BKP备份寄存器
  18. IWDG独立看门狗
  19. WWDG窗口看门狗,看门狗复位芯片
  20. SDIOSD卡接口
  21. FSMC可变静态存储控制器:扩内存,配成其他IO协议
  22. USB OTGUSB主机接口

各系列不一定有全部外设,查数据手册。

GPIO外设常见函数

void GPIO_DeInit(GPIO_TypeDef* GPIOx);复位某个GPIO void GPIO_AFIODeInit(void);复位某个AFIO ==void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);用结构体参数初始化GPIO== void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);给结构体变量赋默认值

GPIO读取函数

uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);读取输入数据寄存器某位端口值 uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);读取整个输入数据寄存器 uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);看一下输出啥 uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);

GPIO写入函数

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);设置指定端口为高电平 void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);置指定端口为低电平 void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);根据第三个参数值设置指定端口 void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);同时对16个端口写入

GPIO工作模式

typedef enum { GPIO_Mode_AIN = 0x0,模拟输入 GPIO_Mode_IN_FLOATING = 0x04,浮空输入 GPIO_Mode_IPD = 0x28,下拉输入 GPIO_Mode_IPU = 0x48,上拉输入 GPIO_Mode_Out_OD = 0x14,开漏输出 GPIO_Mode_Out_PP = 0x10,推挽输出 GPIO_Mode_AF_OD = 0x1C,复用开漏 GPIO_Mode_AF_PP = 0x18复用推挽 }GPIOMode_TypeDef;

同时初始化GPIO端口逻辑: 在十六进制中,按位或以后的数每一位相当于对应一个端口。 引脚定义中也是,把八进制转化成十六进制。 GPIO_Init_All 0xFFFF表示选中所有引脚 时钟控制,GPIO_SetBits等也可用按位或

PA15 PB3 PB4是JTAG调试端口,做普通还要另外配置

results matching ""

    No results matching ""