硬件USART

USART简介

USART简介

cubeMX配置

  • 串口工作模式
    在这里插入图片描述

  • Parameter Settings(USART参数配置)

在这里插入图片描述

  • Basic Parameters

    • Baud Rate:波特率
    • Word Length:传输数据长度为
    • Parity:奇偶检验
    • Stop Bits:停止位

  • Advanced Parameters

    • Data Direction:接收或发送
  • USART的NVIC接收中断

  • DMA数据自动发送或接受

keil使用流程

  • cubeMX自动生成名为huartx的结构体(定义在usart.h文件中)
  • 发送
/**
  * @param huart   UART handle.
  * @param pData   指向发送数据缓冲区的指针 (u8 or u16 data elements).
  * @param Size    待发送数据的个数(u8 or u16)
  * @param Timeout 超时等待时间
  * @retval HAL status
  */
HAL_UART_Transmit(&huartx, Buffer, NUMBER, 0x00100)
  • 接收
    1. 先注册一个接受缓冲区
uint8_t Buffer[] = {0};
HAL_UART_Receive_IT(&huartx, Buffer, NUMBER);

每来一个字节数据就中断一次,等接收到 NUMBER 个字节数据后再统一进入回调函数进行处理。

  1. 回调函数
    每次进入回调函数,就需要重新调用 HAL_UART_Receive_IT()
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
    if(huart->Instance == USARTx)
    {
        HAL_UART_Receive_IT(&huartx, (uint8_t *)Buffer, NUMBER);
    }
}

HAL库

发送接收函数

//串口发送,使用超时管理机制。
HAL_UART_Transmit()

//串口接收,使用超时管理机制。
HAL_UART_Receive()

//串口中断模式发送
HAL_UART_Transmit_IT()

//串口中断模式接收
HAL_UART_Receive_IT()

//串口DMA模式发送
HAL_UART_Transmit_DMA()

//串口DMA模式接收
HAL_UART_Receive_DMA()

回调函数

//一半数据(half transfer)发送完成后,通过中断处理函数调用。
HAL_UART_TxHalfCpltCallback()

//发送完成后,通过中断处理函数调用。
HAL_UART_TxCpltCallback()

//一半数据(half transfer)接收完成后,通过中断处理函数调用。
HAL_UART_RxHalfCpltCallback()

//接收完成后,通过中断处理函数调用。
HAL_UART_RxCpltCallback()

//传输过程中出现错误时,通过中断处理函数调用。
HAL_UART_ErrorCallback()




                                     ------ BY Flier

2023.10.3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值