一、扫描模式
CubMAX配置介绍:
模式选择:
Asynchronous 异步通信
Synchronous 同步通信
Single Wire (Half-Duplex) 单线/半双工
Multiprocessor Communication 多处理器
支持局域互连网络LIN、智能卡(SmartCard)协议与lrDA(红外线数据协会) SIR ENDEC规范。
基础参数:波特率为9600Bits/s,传输数据长度为8 Bit,奇偶检验无,停止位1
HAL库函数
串口发送函数:
HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
功能:串口发送指定长度的数据。如果超时没发送完成,则不再发送,返回超时标志(HAL_TIMEOUT)。
参数:
- UART_HandleTypeDef *huart UATR的别名 如 : UART_HandleTypeDef huart1; 别名就是huart1
- *pData 需要发送的数据
- Size 发送的字节数
- Timeout 最大发送时间,发送数据超过该时间退出发送
串口接收函数:
HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
功能:串口接受指定长度的数据。如果超时没接受完成,则不再接受,返回超时标志(HAL_TIMEOUT)。
参数:
- UART_HandleTypeDef *huart UATR的别名 如 : UART_HandleTypeDef huart1; 别名就是huart1
- *pData 需要接受的数据
- Size 发送的字节数
- Timeout 最大接受时间,接受数据超过该时间退出接受
代码
全局:
char RxBuffer[100]; //接收数据 char TxBuffer[100] = {0x50}; //发送数据
main:
HAL_UART_Transmit(&huart3,(uint8_t *)TxBuffer,1,0xffff);
while:
HAL_UART_Receive(&huart3,(uint8_t *)RxBuffer,3,0xffff);// 接收3个字符 if(RxBuffer[0] != 0) { HAL_UART_Transmit(&huart3,(uint8_t *)RxBuffer,3,0xffff);// 发送3个字符 memset(RxBuffer,0,sizeof(RxBuffer)); }
memset函数需要在添加#include "string.h"
串口助手演示效果:
符合预计效果
标签:HAL,UART,基础,发送,HandleTypeDef,串口,RxBuffer From: https://www.cnblogs.com/CC-C/p/16954638.html