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

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

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

1)、串口一配置。

2)、开启中断模式

3)、生成工程代& D# U. J7 h0 n3 R+ f$ a# R


9 `. }: G2 G$ d2 |2 V+ E4 e! P: h

' q$ v, d# ~* g

在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)
    2 f0 |5 g, y/ b* B% T  J" P6 q
  2. {
    & T% k9 N) G; w0 J: T
  3.   /* USER CODE BEGIN USART1_IRQn 0 */$ H) U0 Z/ j- ^6 ?+ I+ ~9 H
  4.     recv_end_flag = 1;- c  ]1 ?# h/ E& ]1 }% g# }/ r
  5.     __HAL_UART_CLEAR_IDLEFLAG(&huart1);+ s$ _8 _" U/ F8 L; Q4 j
  6.   /* USER CODE END USART1_IRQn 0 */: k/ B# x. y0 C  U
  7.   HAL_UART_IRQHandler(&huart1);
    $ M( \; D0 O  r. X+ k
  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>
复制代码

& j, Z- Y* h" H

在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>" R- b' ?: C( l1 V. j: a1 T( o/ _) 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();* X" E& h: l) x
  3.   MX_DMA_Init();) V, f5 v& O# c7 r. j; t  ~1 D  v
  4.   MX_ADC1_Init();
    * Q4 M- B  Y# c7 G; p8 N
  5.   MX_USART1_UART_Init();% o) I& t6 J' A* l0 F6 J7 D! [
  6.   /* USER CODE BEGIN 2 */
    5 d% C; }/ Y0 M$ ]$ w5 X# j, t
  7.     __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);4 J7 F' A8 q! m' l$ S
  8.     HAL_UART_Receive_DMA(&huart1,rx_buffer,sizeof(rx_buffer));: b) P. C$ P# f6 c* k
  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 */8 V4 Q% C2 R' f, I$ w5 e/ C
  10.   /* USER CODE BEGIN WHILE */. L; u" K( q1 U( ]2 C8 T
  11.   while (1)7 \/ N* @) \/ _  H. j% E. q+ o
  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);* \5 e( Q4 Y. ~2 E5 T
  13.         HAL_Delay(200);: Q$ ^' _: a. M: u7 c& C* {
  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);
    6 l& o# R  z' F1 F( n7 J( L, a
  15.         if(recv_end_flag ==1){
    4 ?! u# p% i) F+ n% J

  16. 9 }4 J/ F- V& K/ d* a% U9 R$ e
  17.         }1 V& ~* O) l+ [3 H9 P! S
  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 */
    8 p7 i3 s: m, [
  19.   }! P( j& R* `3 E. e
  20.   /* USER CODE END 3 */$ f9 q9 w% y' Q1 @' C
  21. }</font></font></font></p>
复制代码

, f9 Q, h$ a4 |
9 @% O$ f  ]1 v6 q, R2 ]5 P
收藏 评论1 发布时间:2021-11-15 21:01

举报

1个回答
lugl 回答时间:2022-12-27 08:19:52
有好多乱码呢,可否整一下,看的人感受好一点。; q1 c6 {8 c" d( w' C# `

所属标签

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