打印
[其他ST产品]

【经验分享】STM32CubeMX—串口空闲中断+DMA接收

[复制链接]
575|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2023-1-16 10:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
STM32CubeMX—串口空闲中断+DMA接收

1)、串口一配置。

2)、开启中断模式

3)、生成工程代



在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中吗

使用特权

评论回复
5
wilhelmina2| | 2023-2-8 13:09 | 只看该作者
如何通过DMA来接收串口数据               

使用特权

评论回复
6
belindagraham| | 2023-2-11 16:17 | 只看该作者
在stm32cubemx中该怎么配置dma模式

使用特权

评论回复
7
uptown| | 2023-2-11 19:06 | 只看该作者
stm32的串口dma缓冲区是先进先出吗

使用特权

评论回复
8
jimmhu| | 2023-2-14 11:15 | 只看该作者
STM32为什么不能实现485和DMA的数据收发?

使用特权

评论回复
9
jonas222| | 2023-2-16 14:24 | 只看该作者
stm32 串口dma最多发送多少个

使用特权

评论回复
10
maqianqu| | 2023-2-16 16:32 | 只看该作者
虚拟串口可以实现DMA吗?               

使用特权

评论回复
11
chenci2013| | 2023-2-16 17:52 | 只看该作者
stm32 串口 能用dma同时收发吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1327

主题

3833

帖子

0

粉丝