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

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

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

1)、串口一配置。

2)、开启中断模式

3)、生成工程代6 ~; W4 X0 p1 @4 }  C


7 Z0 b6 q: g: m% j& s. f. T6 N6 s
8 E$ t5 I+ @5 n9 A: p

在stm32g0xx_it.c中添

  1. <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)& _+ \- P6 f* ]5 j0 j1 V6 p9 x
  2. {8 J; H0 E; p! u6 j! Q
  3.   /* USER CODE BEGIN USART1_IRQn 0 */+ K# P! L+ K2 B! f, V: }
  4.     recv_end_flag = 1;6 s1 S, ^2 b! u: k( [7 v
  5.     __HAL_UART_CLEAR_IDLEFLAG(&huart1);  k3 U  _) T9 [9 P: n
  6.   /* USER CODE END USART1_IRQn 0 */
    / l9 q: G- a3 I7 b+ U
  7.   HAL_UART_IRQHandler(&huart1);
    , p( Q0 Z/ A1 D
  8.   /* 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>
复制代码

' S# @- V4 N0 Y# h! R

在main.c中加上

  1. <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>1 e) c% @/ D$ @" Y) U$ o4 }* K8 H
  2. <p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="-apple-system, " "=""><font style="font-size: 16px">MX_GPIO_Init();7 p+ T( J5 ?4 C2 I9 f
  3.   MX_DMA_Init();
    ' C$ t/ O+ Y0 D+ t( r' @
  4.   MX_ADC1_Init();& B$ g0 ?" v' ?& A" ^; t' F! C) c0 X+ s
  5.   MX_USART1_UART_Init();+ f) W7 i1 b9 f" v* R
  6.   /* USER CODE BEGIN 2 */1 [4 q+ V0 Z) s2 ?+ [8 L
  7.     __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
    6 n3 H" A5 `: k* Q
  8.     HAL_UART_Receive_DMA(&huart1,rx_buffer,sizeof(rx_buffer));; i# y6 |" e" ]0 R
  9.   /* 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 */! }) V! b1 k. H: B
  10.   /* USER CODE BEGIN WHILE */
    2 S8 [+ f2 d4 w, v* y
  11.   while (1)
    ' n; w) D: p1 s3 Y$ f0 \' r2 w4 r: K
  12.   {</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);
    ) L0 ~- r  a: Q# y( ~
  13.         HAL_Delay(200);
      w. v+ D  {* Q5 H% Y& z
  14.         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);
    - Q: j/ M9 |1 {& B: Q8 z" E
  15.         if(recv_end_flag ==1){
    ! T+ F% _+ |" Y; w

  16. ( |0 A& F* A' ~* n& |
  17.         }5 a; z" o- ]& ]% C( ]3 C/ }$ K
  18.     /* 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 */0 J. m. d2 K" m+ S! O
  19.   }
    - }. E; f8 A# G0 ~# X
  20.   /* USER CODE END 3 */2 a, r' e( C3 j% c1 g" \
  21. }</font></font></font></p>
复制代码

) `0 ^8 s; g' e8 `6 g, `3 q4 G- D- J1 u8 j
赞 收藏 评论1 发布时间:2021-11-15 21:01

举报

1个回答
lugl 回答时间:2022-12-27 08:19:52
有好多乱码呢,可否整一下,看的人感受好一点。
' C- U8 f8 L9 V" P0 g+ S
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版