你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
STMCU小助手 发布时间:2021-11-13 23:00
STM32CubeMX—串口空闲中断+DMA接收

1)、串口一配置。

2)、开启中断模式

3)、生成工程代7 V6 \, M0 e  Y8 H

2 w& p% L) |, G
# a+ o* i% w: ^: |- |* x6 ]

在stm32g0xx_it.c中添

  1. <p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="Tahoma"><font size="3">uint8_t recv_end_flag=0;</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="Tahoma"><font size="3">void USART1_IRQHandler(void)  w* x4 j, a# v0 |9 U
  2. {1 O8 Z/ A# ~5 y; x$ U
  3.   /* USER CODE BEGIN USART1_IRQn 0 */$ Q  @% l9 ?! B% Q! O, v
  4.     recv_end_flag = 1;4 C  r9 g" h# l3 C
  5.     __HAL_UART_CLEAR_IDLEFLAG(&huart1);6 r; \" R- {/ o' I$ M' Q# ^9 w
  6.   /* USER CODE END USART1_IRQn 0 */) ?% S4 Y, m; P: x
  7.   HAL_UART_IRQHandler(&huart1);
    ( v/ V! H- z% Q6 s0 e" b
  8.   /* USER CODE BEGIN USART1_IRQn 1 */</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="Tahoma"><font size="3">  /* USER CODE END USART1_IRQn 1 */</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="Tahoma"><font size="3">}</font></font></font></p>
复制代码

* ?6 e- H" L  a' [1 S9 f, W; s/ s1 [

在main.c中加上

  1. <p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="Tahoma"><font size="3">#include"stm32g0xx_it.h"</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="Tahoma"><font size="3">extern uint8_t recv_end_flag;</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="Tahoma"><font size="3"> </font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="Tahoma"><font size="3">MX_GPIO_Init();3 a, J# \7 X. u  V9 j. P
  2.   MX_DMA_Init();. |4 |+ A. h+ Y  z5 V7 K5 d; ?* g
  3.   MX_ADC1_Init();1 d2 }/ f; W" ~1 j( x! o' d
  4.   MX_USART1_UART_Init();+ x# }' U) @4 p# P
  5.   /* USER CODE BEGIN 2 */% O* L6 z0 ]7 F8 R
  6.     __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
    ; O  ?. f0 q) G# X! Q# d
  7.     HAL_UART_Receive_DMA(&huart1,rx_buffer,sizeof(rx_buffer));7 a+ _: s' a% Q# p1 {( |
  8.   /* USER CODE END 2 */</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="Tahoma"><font size="3">  /* Infinite loop */7 \& ?" [/ Y  W, j1 \  E8 q
  9.   /* USER CODE BEGIN WHILE */; D/ n. h$ A$ ~: ^
  10.   while (1)
    9 x3 _% }# `8 u
  11.   {</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="Tahoma"><font size="3">        HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
      }( j  u% `" y& P5 D$ X1 [+ H
  12.         HAL_Delay(200);5 V8 n' o8 c5 W9 h) W6 Q
  13.         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="Tahoma"><font size="3">        HAL_Delay(200);0 @% h9 K  g) `7 m
  14.         if(recv_end_flag ==1){9 `$ _$ U  c' d; |

  15. / v- z/ c6 z) K9 L+ m
  16.         }
    & `1 T, E- t/ [  T
  17.     /* USER CODE END WHILE */</font></font></font></p><p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="Tahoma"><font size="3">    /* USER CODE BEGIN 3 */* ]; E; h! Z1 ~* i
  18.   }
    7 y# O% j; m9 x$ @& ], [
  19.   /* USER CODE END 3 */( G. O5 d' r$ {6 L, N& D
  20. }</font></font></font></p>
复制代码

% l+ p" b6 C5 x( {9 ]. M: Z
收藏 评论0 发布时间:2021-11-13 23:00

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版