系列文章目录
前言
使用stm32串口发送打印字符串,重定向printf
一、STM32CubeMX设置
选择串口1,使用异步模式
二、代码
打印字符串
/* USER CODE BEGIN Includes */
#include "string.h"//使用strlen需要声明
/* USER CODE END Includes */
`/* USER CODE BEGIN PV */
extern UART_HandleTypeDef huart1;
char arr[] = {"hello world\r\n"};//发送的数据
/* USER CODE END PV */``
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_UART_Transmit(&huart1,(uint8_t *)arr,strlen(arr),100);
HAL_Delay(1000);
}
/* USER CODE END 3 */
每次使用 HAL_UART_Transmit 比较麻烦,可以封装一下
void Serial_SendString(char *String)
{
HAL_UART_Transmit(&huart1,(uint8_t *)String,strlen(String),100);
}
重定向printf
勾选Use McroLIB,添加库
#include <stdio.h>
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t*)&ch ,1,1000);
return (ch);
}
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
// HAL_UART_Transmit(&huart1,(uint8_t *)arr,strlen(arr),100);
// HAL_Delay(1000);
// Serial_SendString(arr);
// HAL_Delay(1000);
printf("hello world\r\n");
HAL_Delay(1000);
}
/* USER CODE END 3 */