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

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

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

1)、串口一配置。

2)、开启中断模式

3)、生成工程代
* U, @* p. v# |1 t* L: z% H

4 U; l" u. K/ j1 V9 g* T

" M2 K; _! `/ w6 l4 Y

在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)# g! W. R" z3 O# r) j# E/ O
  2. {7 W; s& M1 T$ z! x" c
  3.   /* USER CODE BEGIN USART1_IRQn 0 */
    7 v  L) q, i3 C; ^
  4.     recv_end_flag = 1;
    6 v, \. s+ U0 B' [
  5.     __HAL_UART_CLEAR_IDLEFLAG(&huart1);6 h7 @; t, |" b2 F% k" l& E2 N
  6.   /* USER CODE END USART1_IRQn 0 */4 K9 a$ ^( ~# m& }1 @
  7.   HAL_UART_IRQHandler(&huart1);  a9 K/ X( S- \. u2 h7 ^$ [, d: N9 z
  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>
复制代码

2 P0 I7 X2 A/ m# q! ~

在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();  Z4 g& M2 {1 v$ J+ E# a
  2.   MX_DMA_Init();2 S1 H1 o& f* Y3 K
  3.   MX_ADC1_Init();
    # x( X) }* S' a' d
  4.   MX_USART1_UART_Init();( \9 }$ K' Q5 Q3 d+ o+ F2 [% W) ^
  5.   /* USER CODE BEGIN 2 */
    $ `0 `" Z0 m; X6 X4 [
  6.     __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
    + d( j* }6 m  d9 _/ R
  7.     HAL_UART_Receive_DMA(&huart1,rx_buffer,sizeof(rx_buffer));
    0 u% U6 W$ V" w9 x0 g3 b& O# e
  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 */
    3 e& w3 e5 L- c7 n/ j' l- G: J
  9.   /* USER CODE BEGIN WHILE */1 i: S. f8 ~9 J7 Q1 m& L& I
  10.   while (1)
    9 J$ q, E, d( t2 Y; Q$ U  C& b6 r
  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);
    ) @& ^$ @# f- m1 I7 k
  12.         HAL_Delay(200);6 j3 \% j; {3 h
  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);' r8 i* {& @7 s- W2 l* U1 c0 p
  14.         if(recv_end_flag ==1){
    9 H/ J1 h, y- q. p$ w+ r9 b
  15. # s8 O" \# p3 W- u% O) Z
  16.         }
    $ l0 _/ y, }% i" }/ S' H5 _* ^4 e
  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 */
    ( J7 L0 T2 b4 k( O2 F
  18.   }
      W) H  S9 C" j# F0 W: g* Z
  19.   /* USER CODE END 3 */
    ( s8 D8 X6 h& ~. }( K
  20. }</font></font></font></p>
复制代码

; L2 W5 e, D5 N  W2 o
收藏 评论0 发布时间:2021-11-13 23:00

举报

0个回答

所属标签

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