学习日志
此程序使用中断接收/轮询发送,各个串口可以独立收发或将其他串口接收到的数据统一发给其中某一串口。
效果如下
//主函数
//包含头文件
#include "stm32f4xx_hal.h"
#include "string.h"
#include "my_usartx1.h"
#include "my_usartx2.h"
#include "my_usartx3.h"
//接收缓冲区定义
uint8_t Usart1_Rxbuffer;
uint8_t Usart2_Rxbuffer;
uint8_t Usart3_Rxbuffer;
int main(void)
{
uint8_t txbuf_1[50];
uint8_t txbuf_2[50];
uint8_t txbuf_3[50];
HAL_Init(); //复位所有外设,初始化Flash接口和系统滴答定时器
SystemClock_Config();//配置系统时钟
MX_USARTx1_Init();//初始化串口并配置串口中断优先级
MX_USARTx2_Init();
MX_USARTx3_Init();
/*
在复位后会向上位机发送所连串口信息,
如连入串口一后复位开发板,会向上位机发送“这是串口一”
*/
memcpy(txbuf_1,"这是串口一",50);
HAL_UART_Transmit(&husart1,txbuf_1,strlen((char *)txbuf_1),1000);
memcpy(txbuf_2,"这是串口二",50);
HAL_UART_Transmit(&husart2,txbuf_2,strlen((char *)txbuf_2),1000);
memcpy(txbuf_3,"这是串口三",50);
HAL_UART_Transmit(&