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

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

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

1)、串口一配置。

2)、开启中断模式

3)、生成工程代
5 v! s# k* Q' D. l- Q8 P9 x

) t: T& p3 p2 K8 L# U
: F4 \, D# l; j* b# _$ u

在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)( K$ f! \2 E( j; C4 {4 E0 p. E1 k/ O. K
  2. {9 O0 U( J; i/ f$ ]5 U7 Z$ [; I$ W
  3.   /* USER CODE BEGIN USART1_IRQn 0 */! V$ D3 J" M% Z: o7 ^8 t
  4.     recv_end_flag = 1;
    ! K% u9 n% Q3 m6 a1 y
  5.     __HAL_UART_CLEAR_IDLEFLAG(&huart1);7 O, Q4 K4 C, y' s
  6.   /* USER CODE END USART1_IRQn 0 */, x" w8 s: O. w! r, l0 `
  7.   HAL_UART_IRQHandler(&huart1);9 J* p4 j3 h* C) ^8 P  p
  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>
复制代码
0 X, {- u8 ?; ^/ o" u* x5 p2 x

在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>
    , d# g" l" E: _" f+ k
  2. <p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="-apple-system, " "=""><font style="font-size: 16px">MX_GPIO_Init();
    9 ?; l9 s2 ]/ {  ]( m9 D1 b% m+ q' ?
  3.   MX_DMA_Init();
    # z8 }8 x1 ^4 B+ l  Z+ [9 a
  4.   MX_ADC1_Init();
    ) b. x! M2 ^- W, u) K5 _# X
  5.   MX_USART1_UART_Init();) d; F/ x5 p6 O3 D
  6.   /* USER CODE BEGIN 2 */
    2 J$ t9 c# }$ f+ J" I  w
  7.     __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
    2 `% Z3 f) x+ j5 t, |8 ?
  8.     HAL_UART_Receive_DMA(&huart1,rx_buffer,sizeof(rx_buffer));
    0 j8 f+ q8 y) o: M
  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 */7 J3 t2 {) p0 K7 I/ ?
  10.   /* USER CODE BEGIN WHILE */
    # q  i4 _5 u" ?* q4 Q# n( R) E
  11.   while (1)
    $ V0 Y) ^+ m0 q2 u$ d
  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);( n" P# R0 x" v# w" @! J1 i) [
  13.         HAL_Delay(200);
    & u* A' j5 c- O6 K: Q) Y# U
  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);
    " E5 q& v1 o' |- l7 s) U9 j  c
  15.         if(recv_end_flag ==1){
    2 I" [$ t# X7 h, Z$ g/ d# P

  16. 6 m* }- E7 q: K3 K
  17.         }8 K" |0 K3 l% E  g+ P% g+ P5 d
  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 */. p5 F! C  I$ e" ]6 g& I0 F
  19.   }
    2 ^3 ]# [: A0 L
  20.   /* USER CODE END 3 */7 O; d( H5 W1 Z6 `/ o" Y0 N) o
  21. }</font></font></font></p>
复制代码

7 ?/ {$ c% y0 w( }' \3 ?' P$ O% K0 R" s7 H% M& h4 `0 A
收藏 评论1 发布时间:2021-11-15 21:01

举报

1个回答
lugl 回答时间:2022-12-27 08:19:52
有好多乱码呢,可否整一下,看的人感受好一点。) F+ s( n, E) N! l9 Y+ t

所属标签

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