USART串口通讯
一、轮询模式
1.设置所接引脚为UART异步模式
- 选择完成CTRL+S保存。
2.编写测试代码(自动发送hello world)
- 在mian函数里面编写代码
- 原函数
- 调用函数,需要数据类型一致,使用函数通过串口发送数组里面的数据
- 打开串口助手测试
- 选择对应的端口,波特率需要一致。
3.编写接收数据的代码
- 通过串口助手测试代码正常使用。
二、中断模式收发
1.打开URAT的中断功能,然后保存自动生成代码
2.使用中断发送数据
3.使用中断接收数据
- 串口使用中断模式来接收信息,没有等待时间,如果程序写在while循环中,会有这次数据还没有接收完成就去接收下次数据的情况,所以需要将对应程序写在中断函数的回调函数中。
- 在stm32f1xx_hal_uart.c文件中,有一个回调函数,我们可以重新定义其内容
- 将定义的数组改成全局变量
/* USER CODE BEGIN PV */
uint8_t receiveData[2];
/* USER CODE END PV */
- 复制回调函数到main.c文件中,重新定义回调函数
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {
HAL_UART_Transmit_IT(&huart1, receiveData, 2);
GPIO_PinState state = GPIO_PIN_SET;
if (receiveData[1] == '1') {
state = GPIO_PIN_RESET;
if (receiveData[0]