STM32的HAL库开发系列 - 串口发送
基本知识
USART:通用同步和异步收发器
UART:通用异步收发器
当进行异步通信时,这两者是没有区别的。区别在于USART比UART多了同步通信功能。
单工:数据传输只支持数据在一个方向上传输;
半双工:数据传输允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;
全双工:数据通信允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。
I2C是半双工,SPI的全双工,uart是全双工。
函数
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
HAL_UART_Transmit
即为串口的发送函数。函数的入口参数如下
huart
串口句柄pData
需要发送数组的指针(必须为uint8_t型数组,因为串口是单字节发送的。Size
数组的字节数Timeout
超时时间。在指定时间内未完成数据发送则返回HAL_TIMEOUT
函数返回值:HAL_status
状态共4种 HAL_OK
、HAL_ERROR
、HAL_BUSY
、HAL_TIMEOUT
备注:
如果发送的是字符串,如果依旧用16进制显示,那么上位机将输出字符串中每个字符的ASCLL编号的16进制数。如果采取非16进制显示,那么上位机会用ASCLL去解析收到的数据,即你发送什么字符串,上位机就输出什么字符串。