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

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

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

1)、串口一配置。

2)、开启中断模式

3)、生成工程代
' O" M  n& Q1 n! e4 G5 a


1 b; V! D8 m$ R
8 a7 u3 d0 |" v/ [

在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)$ d7 ?/ H0 T+ M. w* R. P! B7 K+ J
  2. {
    / D/ l7 t* {  t3 c- E1 c/ q
  3.   /* USER CODE BEGIN USART1_IRQn 0 */
    - ^# D- h8 @9 V4 W( C
  4.     recv_end_flag = 1;
    ' P- `4 b) L, ?  [
  5.     __HAL_UART_CLEAR_IDLEFLAG(&huart1);
    # P! j5 t; V2 E4 h- b
  6.   /* USER CODE END USART1_IRQn 0 */
    0 o& z  m) |7 O& U5 R( @9 @
  7.   HAL_UART_IRQHandler(&huart1);0 `' y) g, F# u/ i
  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>
复制代码

8 Z/ j4 ^- @) q

在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>) |- U5 c# {! Q; h. x
  2. <p style="line-height: 26px;"><font color="rgb(77, 77, 77)"><font face="-apple-system, " "=""><font style="font-size: 16px">MX_GPIO_Init();8 j% x" V, ?, E
  3.   MX_DMA_Init();) C' c4 ~7 \- u
  4.   MX_ADC1_Init();
    # ~7 D8 e3 o( _; c" O
  5.   MX_USART1_UART_Init();
    * ?1 C) ]' o2 ^
  6.   /* USER CODE BEGIN 2 */" L1 }8 _# d/ x$ D
  7.     __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);2 b3 j1 r; B5 d, x# W: V: \
  8.     HAL_UART_Receive_DMA(&huart1,rx_buffer,sizeof(rx_buffer));( j0 \9 Z. q& f+ Y- p) 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 */& b+ ?7 k4 l. E. G, k
  10.   /* USER CODE BEGIN WHILE */4 b* o% n+ }4 c6 ]6 g
  11.   while (1)6 M$ P' W. Y% a8 H/ 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);
    4 l8 O8 o' W- e' W: i
  13.         HAL_Delay(200);
    % G% D  k% u* d
  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);
    1 Z) t8 p/ M: \- b# j
  15.         if(recv_end_flag ==1){
    2 {5 I. t: K4 z  a" N7 a
  16. + Q) n" x9 d$ E* T/ Z- b* p' b& y4 U
  17.         }( I+ B& P0 g* w6 g% X, M
  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 */
    - g9 [9 Y0 {7 N
  19.   }2 Y9 c1 v* ?3 \/ Z7 M
  20.   /* USER CODE END 3 */- n; A/ y" @" U- j6 E. o
  21. }</font></font></font></p>
复制代码
2 q9 t# H- {- t7 k# `/ h
' w1 R8 j+ H4 \+ v, f; E" g
收藏 评论1 发布时间:2021-11-15 21:01

举报

1个回答
lugl 回答时间:2022-12-27 08:19:52
有好多乱码呢,可否整一下,看的人感受好一点。
4 b9 P9 O6 U4 |' _) z+ |! _

所属标签

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