STM32HAL学习笔记二-串口通信
本次串口通信实验是在上个LED工程的基础上进行改写。本次实验仅编写与上位机串口助手通信的简单通信,以方便对后期实验的验证与调试。
1.在CubeMX中配置串口1
波特率115200
字长8位
无奇偶检验
停止位1
2.设置中断优先管理级
3.编写程序
3.1找到HAL库函数
3.2开启串口1的接收中断
HAL_UART_Receive_IT(&huart1,RxBuf1,sizeof(RxBuf1));//开启串口接收中断
HAL_UART_Transmit_IT(&huart1,"Hello World",11);//发送接收的数据
3.3重写串口中断回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance == USART1)
{
/*编写业务函数*/
HAL_UART_Transmit_IT(huart,RxBuf1,4);//发送接收的数据
HAL_UART_Receive_IT(huart,RxBuf1,4);//开启下一次的接收
}
}
4.调试结果1
5.printf函数重定向
1.添加头文件
#include "stdio.h"
2.添加以下代码
int fputc(int ch,FILE *f)
{
HAL_UART_Transmit(&huart1,(uint8_t *)&ch,1,0xFFFF);//hurat1为串口号,根据自己情况进行选择
return ch;
}
3.一定要勾选Use MicroLIB,不然使用printf函数程序会卡死
printf("Hello World\r\n");