普中STM32-PZ6806L开发板(HAL库函数实现-USART2 中断接收)

简介

实现USART2 的 中断接收, 发送数据。

电路原理图

USART2接线 原理图

在这里插入图片描述
USART2 在主芯片引脚
在这里插入图片描述
实物图
在这里插入图片描述

其他知识

APIs

stm32f1xx_hal_uart.h

/* 堵塞发送, pData是发送数据, Size发送数据大小, Timeout是超时时间 */
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout);
/* 堵塞接收, pData是发送数据, Size发送数据大小, Timeout是超时时间 */
HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout); 
/* 中断发送, pData是发送数据, Size发送数据大小 */
HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size);
/* 中断接收, pData是发送数据, Size发送数据大小 */
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
/*  DMA发送, pData是发送数据, Size发送数据大小 */
HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size);
/* DMA接收, pData是发送数据, Size发送数据大小 */
HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
/* 中断/DMA 接收回调函数, 在中断/DMA模式时, 有数据接收时将调用此函数, 可重写此函数 */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);
/* 中断/DMA 发送回调函数, 在中断/DMA模式时, 有数据发送时将调用此函数, 可重写此函数 */
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart);

实现步骤

创建项目

参考 普中STM32-PZ6806L开发板(STM32CubeMX创建项目并点亮LED灯)

初始化USART2

在这里插入图片描述

添加用户代码

main.c

uint8_t usart2_dat = 0;

/* 中断回调函数定义 */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
   
	if (huart->Instance == USART2)
	{
   
		HAL_UART_Transmit(&huart2, &usart2_dat, 1, 0xff); // USART2接收到的数据发送出去
		
		HAL_UART_Receive_IT(&huart2, &usart2_dat, 1); // USART2继续中断接收
	}
}

int main()
{
   
...
HAL_UART_Receive_IT(&huart2, &usart2_dat, 1); // USART2开始中断接收

while(1)
{
   
	HAL_Delay(1000);
}
...
}

共赏

视频

代码

不需要下载, 基本代码上面都提供了

参考

普中STM32-PZ6806L开发板(HAL库函数实现-批量操作GPIO引脚实现跑马灯)

最近更新

  1. TCP协议是安全的吗?

    2024-01-06 01:10:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-06 01:10:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-06 01:10:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-06 01:10:01       20 阅读

热门阅读

  1. react 6种方式编写样式

    2024-01-06 01:10:01       37 阅读
  2. 解决Element-Plus中el-switch的change方法自动触发问题

    2024-01-06 01:10:01       186 阅读
  3. kotlin first/last/indexOf/elementAt

    2024-01-06 01:10:01       41 阅读
  4. Vue3中使用动态组件

    2024-01-06 01:10:01       40 阅读
  5. Docker项目:搭建服务器监控面板

    2024-01-06 01:10:01       36 阅读
  6. 【sql】_![CDATA[]]_和转义字符:

    2024-01-06 01:10:01       37 阅读
  7. 前端加密库 jsencrypt的使用

    2024-01-06 01:10:01       42 阅读
  8. 字母异位词分组【哈希】

    2024-01-06 01:10:01       44 阅读
  9. SSH 端口转发:如何将服务绑定到本地 IP 地址

    2024-01-06 01:10:01       36 阅读