obsidian-notes/代码/串口DMA不定长接收.md
murmur-mate30 13114515ad 更新了4个文件。
Affected files:
_resources/Pasted image 20240618084710.png
_resources/Pasted image 20240618084749.png
代码/串口DMA不定长接收.md
代码/状态机接收不定长数据.md
2024-06-18 08:56:51 +08:00

46 lines
847 B
Markdown

---
title: 串口DMA不定长接收
updated: 2022-01-11 01:27:13Z
created: 2022-01-08 13:18:08Z
tags:
- mcu
- 串口
- 代码块
- 不定长
- 解析
---
串口不定长接收利用的是串口接收中的空闲中断
处理空闲中断
```c
/**
* @brief This function handles USART1 global interrupt.
*/
void USART1_IRQHandler(void)
{
/* USER CODE BEGIN USART1_IRQn 0 */
uint32_t flag,tmp;
flag = __HAL_UART_GET_FLAG(&huart1,UART_FLAG_IDLE);
if (flag != RESET) {
__HAL_UART_CLEAR_IDLEFLAG(&huart1);
tmp = huart1.Instance->SR;
tmp = huart1.Instance->DR;
HAL_UART_DMAStop(&huart1);
tmp = hdma_usart1_rx.Instance->CNDTR;
rxlen = 200 - tmp;
isrxend = 1;
}
/* USER CODE END USART1_IRQn 0 */
HAL_UART_IRQHandler(&huart1);
/* USER CODE BEGIN USART1_IRQn 1 */
/* USER CODE END USART1_IRQn 1 */
}
</div>
```
#串口
#mcu
#代码块