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

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

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

1)、串口一配置。

2)、开启中断模式

3)、生成工程代
/ m6 x+ v( J8 m$ w


; I6 y) H3 Y' B+ M
6 R! _) c* w- c( q' z( e2 H

在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)
    & y- S/ k. m; k  W$ f3 Z* x$ z
  2. {. d3 l5 U; F1 i% W- j8 s
  3.   /* USER CODE BEGIN USART1_IRQn 0 */) T$ d* Q' p! F% q. S5 z. Z
  4.     recv_end_flag = 1;
    ; W- \- d  x2 x
  5.     __HAL_UART_CLEAR_IDLEFLAG(&huart1);
    $ u* A" R# a4 D+ l3 {$ L
  6.   /* USER CODE END USART1_IRQn 0 */
    * a6 {' z1 C! E7 z, T* g
  7.   HAL_UART_IRQHandler(&huart1);% L) V0 e% s' \
  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>
复制代码
& y) K4 j+ l' K) y

在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();' ^! R8 W8 g2 H3 [$ W
  2.   MX_DMA_Init();
    $ V9 X' ]1 s, J0 D
  3.   MX_ADC1_Init();0 s0 N+ p4 D% b$ Y
  4.   MX_USART1_UART_Init();
    / v& x2 l& ^. k" i
  5.   /* USER CODE BEGIN 2 */; X' b) X2 {4 p, R3 w+ {
  6.     __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
    2 m- V; m( C" `+ k% d0 [
  7.     HAL_UART_Receive_DMA(&huart1,rx_buffer,sizeof(rx_buffer));  L2 i# d6 [& Q' F* I1 \& k  p" x
  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 */+ A  U, z/ t! M
  9.   /* USER CODE BEGIN WHILE *// Z# j/ f- P0 z4 H7 ~0 M3 X/ n
  10.   while (1)- }& K& e' H& |0 H, I
  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);
    " L' X) ]9 a+ |# [
  12.         HAL_Delay(200);4 Q# y7 Q" y* l$ B% F' y0 u' i2 z
  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);, s0 p: s/ f2 f1 q
  14.         if(recv_end_flag ==1){, |- M' w3 |4 Y6 H; p, e

  15. : y( \$ f. M& H* ], H
  16.         }
    $ U0 j7 R# h) X  }# h
  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 */4 f+ R! r. L8 I) ~
  18.   }$ ]" I, x" _8 ]+ G$ J
  19.   /* USER CODE END 3 */
    3 y1 A9 R1 E' c
  20. }</font></font></font></p>
复制代码
" L" c, ]" O: ]" P3 o8 P9 {" z
收藏 评论0 发布时间:2021-11-13 23:00

举报

0个回答

所属标签

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