以USART3为例,
(1)首先在【stm32f1xx_hal_conf.h】中使能DMA模块,工程增加stm32f1xx_hal_dma.c。
(2)main.c中头部增加以下声明
UART_HandleTypeDef huart3;
DMA_HandleTypeDef hdma1_uart3;
(3)main.c中增加USART的初始化
/* USART3 init function */
static void MX_USART3_UART_Init(void)
{
huart3.Instance = USART3;
huart3.Init.BaudRate = 115200;
huart3.Init.WordLength = UART_WORDLENGTH_8B;
huart3.Init.StopBits = UART_STOPBITS_1;
huart3.Init.Parity = UART_PARITY_NONE;
huart3.Init.Mode = UART_MODE_TX_RX;
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart3.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart3) != HAL_OK)
{
Error_Handler();
}
}
(4)stm32f1xx_hal_msp.c增加
extern UART_HandleTypeDef huart3;
extern DMA_HandleTypeDef hdma1_uart3;
......................
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
{
GPIO_InitTypeDef GPIO_InitStruct;
if (huart->Instanc

本文介绍了如何在STM32F103上配置USART3,利用DMA实现串口接收中断和发送功能。首先在`stm32f1xx_hal_conf.h`中启用DMA模块并引入相关文件,接着在`main.c`中声明变量和初始化USART,然后在`stm32f1xx_hal_msp.c`中完成外设连接,最后在`stm32f1xx_it.c`中设置中断处理函数。
最低0.47元/天 解锁文章
5991

被折叠的 条评论
为什么被折叠?



