[其他ST产品] 【经验分享】STM32CubeMX—串口空闲中断+DMA接收

[复制链接]
 楼主| cr315 发表于 2023-1-16 10:10 | 显示全部楼层 |阅读模式
STM32CubeMX—串口空闲中断+DMA接收

1)、串口一配置。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNzI4MDk1,size_16,color_FFFFFF,t_70.jpg

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNzI4MDk1,size_16,color_FFFFFF,t_70.jpg

2)、开启中断模式

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNzI4MDk1,size_16,color_FFFFFF,t_70.jpg

3)、生成工程代

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNzI4MDk1,size_16,color_FFFFFF,t_70.jpg


在stm32g0xx_it.c中添

  • <p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="-apple-system, " "=""><font style="font-size: 16px">uint8_t recv_end_flag=0;</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="-apple-system, " "=""><font style="font-size: 16px">void USART1_IRQHandler(void)
  • {
  •   /* USER CODE BEGIN USART1_IRQn 0 */
  •     recv_end_flag = 1;
  •     __HAL_UART_CLEAR_IDLEFLAG(&huart1);
  •   /* USER CODE END USART1_IRQn 0 */
  •   HAL_UART_IRQHandler(&huart1);
  •   /* USER CODE BEGIN USART1_IRQn 1 */</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="-apple-system, " "=""><font style="font-size: 16px">  /* USER CODE END USART1_IRQn 1 */</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="-apple-system, " "=""><font style="font-size: 16px">}</font></font></font></p>

复制代码


在main.c中加上

  • <p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="-apple-system, " "=""><font style="font-size: 16px">#include"stm32g0xx_it.h"</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="-apple-system, " "=""><font style="font-size: 16px">extern uint8_t recv_end_flag;</font></font></font></p>
  • <p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="-apple-system, " "=""><font style="font-size: 16px">MX_GPIO_Init();
  •   MX_DMA_Init();
  •   MX_ADC1_Init();
  •   MX_USART1_UART_Init();
  •   /* USER CODE BEGIN 2 */
  •     __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
  •     HAL_UART_Receive_DMA(&huart1,rx_buffer,sizeof(rx_buffer));
  •   /* USER CODE END 2 */</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="-apple-system, " "=""><font style="font-size: 16px">  /* Infinite loop */
  •   /* USER CODE BEGIN WHILE */
  •   while (1)
  •   {</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="-apple-system, " "=""><font style="font-size: 16px">        HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
  •         HAL_Delay(200);
  •         HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="-apple-system, " "=""><font style="font-size: 16px">        HAL_Delay(200);
  •         if(recv_end_flag ==1){
  •         }
  •     /* USER CODE END WHILE */</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="-apple-system, " "=""><font style="font-size: 16px">    /* USER CODE BEGIN 3 */
  •   }
  •   /* USER CODE END 3 */
  • }</font></font></font></p>

复制代码



wengh2016 发表于 2023-2-2 14:27 | 显示全部楼层
用串口+dma怎么实现?               
maudlu 发表于 2023-2-4 09:43 | 显示全部楼层
使用dma接受串口数据,怎样清空串口buffer
pixhw 发表于 2023-2-6 14:20 | 显示全部楼层
能够实现串口接收数据直接存储到Flash中吗
wilhelmina2 发表于 2023-2-8 13:09 | 显示全部楼层
如何通过DMA来接收串口数据               
belindagraham 发表于 2023-2-11 16:17 | 显示全部楼层
在stm32cubemx中该怎么配置dma模式
uptown 发表于 2023-2-11 19:06 | 显示全部楼层
stm32的串口dma缓冲区是先进先出吗
jimmhu 发表于 2023-2-14 11:15 | 显示全部楼层
STM32为什么不能实现485和DMA的数据收发?
jonas222 发表于 2023-2-16 14:24 | 显示全部楼层
stm32 串口dma最多发送多少个
maqianqu 发表于 2023-2-16 16:32 | 显示全部楼层
虚拟串口可以实现DMA吗?               
chenci2013 发表于 2023-2-16 17:52 | 显示全部楼层
stm32 串口 能用dma同时收发吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1448

主题

4810

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

1448

主题

4810

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部