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

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

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

1)、串口一配置。

2)、开启中断模式

3)、生成工程代. E# Q9 G% b+ h5 O5 w" G4 K


+ k6 k) _& x- b
! v) B. L7 y/ C

在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)! F- i8 Y0 t- }: L
  2. {
    & D+ ?  j; c1 d
  3.   /* USER CODE BEGIN USART1_IRQn 0 */8 g& u$ F3 `" S( B2 m: w( C
  4.     recv_end_flag = 1;$ N" t) Y  v$ O. o8 d% u
  5.     __HAL_UART_CLEAR_IDLEFLAG(&huart1);3 |! R2 b/ X: A
  6.   /* USER CODE END USART1_IRQn 0 */& Q6 _  K8 ^/ M7 o' m5 P- s8 S4 Z7 A
  7.   HAL_UART_IRQHandler(&huart1);5 B2 R' ~+ w7 ~" S1 A3 o
  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>
复制代码

0 H* E- j  A8 o" A2 @# Q" L

在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();4 [0 x0 e( c! Y8 _: J" [1 Y4 Q
  2.   MX_DMA_Init();
    7 Q; Q/ v  {4 M/ m- \
  3.   MX_ADC1_Init();
    7 V' N, Z' d( J$ b! p2 t$ `% q
  4.   MX_USART1_UART_Init();  C1 v4 c  w* r7 E" V
  5.   /* USER CODE BEGIN 2 */' g1 {) R/ Y5 }- ?( S
  6.     __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
    9 }' c& _* e! {% \
  7.     HAL_UART_Receive_DMA(&huart1,rx_buffer,sizeof(rx_buffer));
    1 {7 G% h6 o4 D, u+ s% W0 q
  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 */
    ; o# K9 _& w' S& A% i% O5 r' L
  9.   /* USER CODE BEGIN WHILE */6 P# R9 ~  ]: Z1 \: W) \
  10.   while (1)
    , s) N* T) y$ ^" U( E
  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);
    2 o+ b$ Z3 l% v7 G# h2 _" I
  12.         HAL_Delay(200);# C) c: W/ j8 H) B! [) [. k
  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);2 [8 b4 {7 e' z& O: v+ a0 D
  14.         if(recv_end_flag ==1){4 ?/ R: W! Q  s5 L# \% g/ [& E$ _' D

  15. 3 b9 w' m7 `* M' ~; `+ {
  16.         }0 }7 w, l$ w* C8 V  j/ t' I
  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 */0 J: S* V- i7 Z8 E1 ^$ ~# I
  18.   }
      x2 W3 X$ `* b9 `* q% K
  19.   /* USER CODE END 3 */
    + Y1 ^  m6 Y, Z+ E
  20. }</font></font></font></p>
复制代码
0 |; T5 ]; G0 D
收藏 评论0 发布时间:2021-11-13 23:00

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版