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

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

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

1)、串口一配置。

2)、开启中断模式

3)、生成工程代
! z0 o2 @6 P' e; g

) \5 o0 q) n/ [6 X/ @& a: E
/ z% e- Q) z4 ^) `4 w$ v: h! n

在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)
    " {* [4 e, s0 D, ~; ^% h# N" @
  2. {  |: u* R; ~, _% e' ~/ i
  3.   /* USER CODE BEGIN USART1_IRQn 0 */' C9 P7 \. J/ I- H$ a+ t4 r
  4.     recv_end_flag = 1;) J3 f/ h" L/ z  A' C2 l
  5.     __HAL_UART_CLEAR_IDLEFLAG(&huart1);9 r& z4 d/ m% K$ r# x- X$ {& k
  6.   /* USER CODE END USART1_IRQn 0 */$ v& X8 H3 B$ k# P) D  o+ N9 Y* w
  7.   HAL_UART_IRQHandler(&huart1);
    ; [. ]8 O* E, C4 G( C( N
  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 ]6 R7 c8 [8 L2 w

在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();; [/ Y: I* q( p) B9 r% T4 V
  2.   MX_DMA_Init();
    6 D% u, z: R" B$ W! e7 j  X" `
  3.   MX_ADC1_Init();
    * T7 @+ K0 X" p! p3 z
  4.   MX_USART1_UART_Init();2 q2 B. X1 r5 X
  5.   /* USER CODE BEGIN 2 */& I! X0 o; {* |: K% m# s/ x! X  j
  6.     __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
    4 m  Z$ w/ H: S
  7.     HAL_UART_Receive_DMA(&huart1,rx_buffer,sizeof(rx_buffer));+ L1 K1 x* `3 G" l* [2 R5 S+ l
  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 */
    : w! u& e# F' J% U0 T
  9.   /* USER CODE BEGIN WHILE */; ]( I% n; v, [+ X" D5 l
  10.   while (1)
    6 u4 L, }( I: {. X
  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);' {- }6 s9 H$ @* K$ \8 l. }5 s3 R
  12.         HAL_Delay(200);
    " F; `4 S7 m" n8 U; i( G% l0 F* H! y6 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);
    / p" ~8 D" w- S! A: T  ~
  14.         if(recv_end_flag ==1){
    ) q  n* W( X( T  a
  15. . p7 ]: u. I6 o4 [
  16.         }; X; Q' e# c' @* C
  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  V$ F/ U6 v5 b: h
  18.   }$ `8 t" q. s5 Q# \% }
  19.   /* USER CODE END 3 */
    % `% D8 S' N, d) e  T( A" ]3 U
  20. }</font></font></font></p>
复制代码
. u, O0 P1 j) |( h1 V% l
赞 收藏 评论0 发布时间:2021-11-13 23:00

举报

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