前言
软件版本:
STM32CubeMX:6.30
KEIl:5.31
FlyMcu:0.188
SSCOM: 5.13.1
硬件:
STM32F103C8T
一、通过CubeMX配置项目
1.设置RCC
2.设置SYS
3.设置USART
4.设置NVIC
5.创建项目
二、代码部分
- main.c文件,在文件中定义缓冲区大小
/* USER CODE BEGIN PD */
#define LENGTH 10 // 接收缓冲区大小
/* USER CODE END PD */
- 定义缓冲区和标志位:
-
/* USER CODE BEGIN PV */
uint8_t RxBuffer[LENGTH]; // 接收缓冲区
uint8_t Rxflag = 0; // 标志位,0为接收未完成,1为接/* USER CODE END PV */
- 定义接收成功信息
-
HAL_UART_Receive_IT(&huart1, (uint8_t*)RxBuffer, LENGTH); // 使能接收中断
char data[] = "\nReveive Success\n"; // 接收成功信息 -
在while循环中发送成功信息和接收到的信息
-
if (Rxflag == 1){ // 若数据接收完成
Rxflag = 0; // 清除标志位
HAL_UART_Transmit(&huart1, (uint8_t *)data, 18, 0xFFFF); // 接收成功信息
// 发送接收到的字符
HAL_UART_Transmit_IT(&huart1, (uint8_t*)RxBuffer, LENGTH);
}
- 定义回调函数
-
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){
if (huart->Instance == USART1){
Rxflag = 1; // 设置标志位为1
HAL_UART_Receive_IT(&huart1, (uint8_t*)&RxBuffer, LENGTH); // 使能接收中断
}
} -
三、烧录并运行
-
四、链接