cr315 发表于 2023-1-16 10:10

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

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

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同时收发吗
页: [1]
查看完整版本: 【经验分享】STM32CubeMX—串口空闲中断+DMA接收