GPIO(General Purpose Input/Output)
用于控制端口的读写操作。
-
GPIO_Init:初始化GPIO端口。
GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // 配置端口Pin号 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 配置输出推挽模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 配置输出速度 GPIO_Init(GPIOA, &GPIO_InitStructure); // 初始化GPIOA端口
-
GPIO_WritePin、GPIO_ReadPin:写入或读取指定GPIO引脚的状态。
GPIO_WritePin(GPIOA, GPIO_Pin_0, GPIO_PIN_SET); // 将GPIOA的Pin_0引脚状态设置为高 uint8_t pin_state = GPIO_ReadPin(GPIOA, GPIO_Pin_0); // 读取GPIOA的Pin_0引脚状态
-
GPIO_SetPin:设置指定GPIO引脚的状态为高电平。
GPIO_SetPin(GPIOA, GPIO_Pin_0); // 将GPIOA的Pin_0引脚状态设置为高电平
-
GPIO_ResetPin:将指定GPIO引脚的状态复位为低电平。
GPIO_ResetPin(GPIOA, GPIO_Pin_0); // 将GPIOA的Pin_0引脚状态复位为低电平
NVIC(Nested Vectored Interrupt Controller)
用于管理中断相关操作。
-
NVIC_EnableIRQ:使能指定的中断。
NVIC_EnableIRQ(USART1_IRQn); // 使能USART1中断
-
NVIC_DisableIRQ:禁用指定的中断。
NVIC_DisableIRQ(USART1_IRQn); // 禁用USART1中断
-
NVIC_SetPriority:设置指定中断的优先级。
NVIC_SetPriority(USART1_IRQn, 2); // 设置USART1中断的优先级为2
DMA(Direct Memory Access)
用于实现高速数据传输,减轻CPU负荷。
- DMA_Init:初始化DMA通道。
DMA_InitTypeDef DMA_InitStructure; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&USART1->DR; // 外设基地址 DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&data; // 存储器基地址 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST; // 方向为从外设到存储器 DMA_InitStructure.DMA_BufferSize = sizeof(data); // 数据大小 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // 禁止外设地址增量 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; // 使能存储器地址增量 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; // 外设数据宽度为字节 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; // 存储器数据宽度为字节 DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; // 正常模式 DMA_InitStructure.DMA_Priority = DMA_Priority_High; // 高优先级 DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; // 禁止存储器到存储器传输 DMA_Init(DMA1_Channel4, &DMA_InitStructure); // 初始化DMA通道
- DMA_Start:启动DMA传输。
DMA_Start(DMA1_Channel4); // 启动DMA1的通道4传输
- DMA_Stop:停止DMA传输。
DMA_Stop(DMA1_Channel4); // 停止DMA1的通道4传输
USART(Universal Synchronous/Asynchronous Receiver/Transmitter)
用于串口通信。
- USART_Init:初始化串口。
USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = 115200; // 波特率为115200
USART_InitStructure.USART_WordLength = USART_WordLength_8b; // 数据位长度为8位
USART_InitStructure.USART_StopBits = USART_StopBits_1; // 停止位为1位
USART_InitStructure.USART_Parity = USART_Parity_No; // 无奇偶校验位
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; // 支持接收和发送模式
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; // 无硬件流控制
USART_Init(USART1, &USART_InitStructure); // 初始化USART1
- USART_SendData:向串口发送数据。
USART_SendData(USART1, data); // 向USART1串口发送数据
- USART_ReceiveData:从串口接收数据。
data = USART_ReceiveData(USART1); // 从USART1串口接收数据
- USART_ITConfig:配置串口中断。
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); // 配置USART1的接收中断使能
TIM(Timer)
用于定时器功能。文章来源:https://www.toymoban.com/news/detail-614908.html
- TIM_TimeBaseInit:初始化定时器。
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_TimeBaseStructure.TIM_Prescaler = 7200; // 预分频系数
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // 计数模式为向上计数
TIM_TimeBaseStructure.TIM_Period = 1000; // 自动重装载值
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; // 时钟分频因子
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); // 初始化TIM2定时器
- TIM_Cmd:启动或停止定时器计数。
TIM_Cmd(TIM1, ENABLE); // 启动TIM1计数
TIM_Cmd(TIM2, DISABLE); // 停止TIM2计数
- TIM_GetCounter:获取定时器的当前计数值。
uint16_t counter = TIM_GetCounter(TIM3); // 获取TIM3的当前计数值
EXTI(External Interrupt)
外部中断,用于响应外部事件触发的中断。文章来源地址https://www.toymoban.com/news/detail-614908.html
- EXTI_Init:初始化外部中断线路。
EXTI_InitTypeDef EXTI_InitStruct;
EXTI_InitStruct.Line = EXTI_Line0; // 外部中断线路号
EXTI_InitStruct.Mode = EXTI_Mode_Interrupt; // 中断模式
EXTI_InitStruct.Trigger = EXTI_Trigger_Rising; // 触发方式
EXTI_InitStruct.GPIOSource = GPIO_PortSourceGPIOA; // GPIO端口源
EXTI_InitStruct.GPIO_PinSource = GPIO_PinSource0; // GPIO引脚源
EXTI_Init(&EXTI_InitStruct);
- EXTI_ClearFlag:清除外部中断标志位。
EXTI_ClearFlag(EXTI_Line0);
- EXTI_GetITStatus:获取外部中断状态。
if (EXTI_GetITStatus(EXTI_Line0) != RESET)
{
// 外部中断事件已发生
}
到了这里,关于stm32标准库开发常用函数的使用和代码说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!