目录
一、使用CUBE_MX配置串口
二、KEIL5配置
1.打开usart.c文件
2.打开main.c文件
在main函数中:
一、使用CUBE_MX配置串口
二、KEIL5配置
1.打开usart.c文件
UART_HandleTypeDef huart1;
void MX_USART1_UART_Init(void)
{
/* USER CODE BEGIN USART1_Init 0 */
/* USER CODE END USART1_Init 0 */
/* USER CODE BEGIN USART1_Init 1 */
/* USER CODE END USART1_Init 1 */
huart1.Instance = USART1;
huart1.Init.BaudRate = 115200;
huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE;
huart1.Init.Mode = UART_MODE_TX_RX;
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart1) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN USART1_Init 2 */
/* USER CODE END USART1_Init 2 */
}
手动增补初始化函数
HAL_UART_Init(&huart1);
2.打开main.c文件
增补:重定向c库函数printf到串口,重定向后可使用printf函数
//重定向c库函数printf到串口,重定向后可使用printf函数
int fputc(int ch, FILE *f)
{
/* 发送一个字节数据到串口 */
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 1000);
1个参数: 对应串口的句柄结构体
return (ch);
}
增补:重定向c库函数scanf到串口,重写向后可使用scanf、getchar等函数
int fgetc(FILE *f)
{
int ch;
HAL_UART_Receive(&huart1, (uint8_t *)&ch, 1, 1000);
return (ch);
}
在main函数中:
printf("串口接收 测试例程\r\n");
char ch;
ch =0 ;
ch=getchar();
printf("接收到的字符是%c\r\n",ch);
printf("\r\n");
使用了ch来接收串口发送过来的数据。可以使用 if 判断 ch==?,进而执行对应的函数操作。