zoukankan      html  css  js  c++  java
  • STM32CubeMx配置USART注意的一个问题

    HAL_UART_Receive_IT(&huart1, (uint8_t *)aRxBuffer, Number);意思是接收到Number个字节后,触发HAL_UART_RxCpltCallback,没收满是不会触发的。而且HAL_UART_Receive_IT是一次性的,触发完后需要时要再调用一下。条件允许的话,用DMA+空闲中断实现不定长接收。

    所以在接收处理函数中写成这样:

    /**
    * 函数功能: 串口接收完成回调函数
    * 输入参数: 无
    * 返 回 值: 无
    * 说 明:无
    */
    void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle)
    {
    AddReceivedUartDataNoCode(aRxBuffer&0x00ff,&g_UartRecBuff[0]);
    HAL_UART_Receive_IT(&huart1,&aRxBuffer,1);
    }

    当然,要想进入这个中断,第一次配置串口完成后,在主函数的While(1)前面也要加上HAL_UART_Receive_IT(&huart1,&aRxBuffer,1);

    意思是开启接收中断,只接收1个字节放到aRxBuffer,接收完就进入上面那个中断回调。

  • 相关阅读:
    border-radius
    border-style
    border-width
    border
    max-width
    min-width
    clip 语法
    left
    z-index
    position
  • 原文地址:https://www.cnblogs.com/heywei/p/9945624.html
Copyright © 2011-2022 走看看