USART串口接收

文章目录

    • 运行环境:
    • 1.1 串口接收代码分析
      • 1)开启接收中断和空闲中断
      • 2)接收存储变量声明和定义
      • 3)中断处理函数
    • 2.1实验效果

运行环境:

ubuntu18.04.melodic
宏基暗影骑士笔记本
stm32f427IIH6
stlink
9-24v可调电源
usb转串口
杜邦线转4pin

1.1 串口接收代码分析

详细见:串口接收

1)开启接收中断和空闲中断

接收中断:当每接收完一个完整字节,就触发一次接收中断

空闲中断:接收完一个完整字节 又 过一个字节时间没有接收任何数据

USART串口接收_第1张图片

2)接收存储变量声明和定义

# 一个是接收100个字节,一个是计算接收几个位
extern uint8_t UARTBUF[100];
extern uint8_t len;

USART串口接收_第2张图片
变量定义:
USART串口接收_第3张图片

3)中断处理函数

判断是接收中断还是空闲中断, 再执行相应操作。

void USART6_IRQHandler(void)
{
  /* USER CODE BEGIN USART6_IRQn 0 */
  static uint8_t q = 0;
  /* USER CODE END USART6_IRQn 0 */
  HAL_UART_IRQHandler(&huart6);
  /* USER CODE BEGIN USART6_IRQn 1 */
if (huart6.Instance->SR&UART_FLAG_RXNE){
UARTBUF[q]=huart6.Instance->DR;
q++;
}
else if (huart6.Instance->SR&UART_FLAG_IDLE){
 huart6.Instance->DR;
 len = q;
  q = 0;
}

USART串口接收_第4张图片

2.1实验效果

输入12345,然后回车进行发送

USART串口接收_第5张图片

断点调试以及变量监视

USART串口接收_第6张图片


⭐⭐⭐ 嘟嘟崽 ⭐⭐⭐
⭐⭐⭐ 祝你成功 ⭐⭐⭐

你可能感兴趣的:(嵌入式stm32,单片机,嵌入式硬件)