STM32CubeMX—串口空闲中断+DMA接收 1)、串口一配置。 

2)、开启中断模式 
3)、生成工程代( N9 r2 P* n4 I0 z
& C/ o/ D3 ^, Z
4 o/ H6 H+ o+ _- F
在stm32g0xx_it.c中添 - <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)" }) w" C+ U Q/ Y. c! \
- {
1 D. Z$ |0 m4 A3 l4 g0 G& o' u) i - /* USER CODE BEGIN USART1_IRQn 0 */
; y5 C. f8 X( p$ i - recv_end_flag = 1;2 t6 w3 |: c6 P. W0 |8 \$ j
- __HAL_UART_CLEAR_IDLEFLAG(&huart1);
' ~! e ^: a" c3 j0 q9 @& l1 ^- k* c - /* USER CODE END USART1_IRQn 0 */" r7 Z/ y, w# n3 R( c
- HAL_UART_IRQHandler(&huart1);
- w4 X7 j2 Q ^1 M& u - /* 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>
复制代码 5 H3 d: z6 I/ V# o. u
在main.c中加上 - <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();
1 o# t( W5 s* A2 h7 M - MX_DMA_Init();; Y/ k$ F- @( P2 B
- MX_ADC1_Init();8 Z' f/ C% M3 H
- MX_USART1_UART_Init();& \: W8 S! i/ Y6 D2 h. W1 B4 R+ T/ b
- /* USER CODE BEGIN 2 */) A4 H3 s( ~0 S+ O. o* a' V
- __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);' q, @2 z/ T; `' t7 L3 A6 C
- HAL_UART_Receive_DMA(&huart1,rx_buffer,sizeof(rx_buffer));9 N+ o n9 J# P" E
- /* 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 */' {$ ~. g; `4 u9 a8 k9 Y( z
- /* USER CODE BEGIN WHILE */
7 h/ Q- N, f9 D0 T0 r- c+ _1 c1 R - while (1)
. u7 i7 \! G: z4 j: }/ O; \, L - {</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 w1 @; I3 n4 X) V( M: q
- HAL_Delay(200);
' d# Y/ p# Q% p+ f: |: ]' c* {$ C$ t - 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);
7 o* P2 J( U7 A* E' \1 x" E - if(recv_end_flag ==1){
" e" K% ]8 j8 d1 p& w0 [$ X - # P0 E! y6 }- H$ E% }
- }
+ s1 n: O" B: f! U7 g) q6 Y - /* 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 */ L. C3 ] i& ]( Y% X' p$ o
- }
. v i7 ?. z+ S - /* USER CODE END 3 */, S/ V: K1 T5 `8 R# b0 ~, p
- }</font></font></font></p>
复制代码 2 ]5 B/ F8 K+ ~& I
|