HAL库用起来的确相对来说更直观一些,但是用习惯了标准库感觉来回调用函数,有些繁琐,然而CubeMX直接生成HAL库非常好用,还是要学习一下的。
首先Cube中配置完成后,基本不用改什么,直接调用
uint8_t aTxBuffer[] = "*********SENDING DATA with DMA***********\r\n";
HAL_UART_Transmit_DMA(&huart1,aTxBuffer,sizeof(aTxBuffer));// DMA发生数据
就可以实现单次的发送了;
然后为了可以连续发送,需要将HAL_UART_StateTypeDef复位成HAL_UART_STATE_READY;
typedef enum
{
HAL_UART_STATE_RESET = 0x00U, /*!< Peripheral is not yet Initialized
Value is allowed for gState and RxState */
HAL_UART_STATE_READY = 0x20U, /*!< Peripheral Initialized and ready for use
Value is allowed for gState and RxState */
HAL_UART_STATE_BUSY = 0x24U, /*!< an internal proces