串口发送到PC端的两种方式

本文详细介绍了在STM32 F1和F4系列微控制器中配置串口的方法,包括GPIO设置和串口模式选择。并提供了两种向PC端发送数据的方式:重定义printf函数和自定义发送函数,后者可用于发送动态数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置串口的时候要注意:

F1系列中,GPIO_RX配置成输入浮空输入模式,GPIO_TX要配置成推挽复用模式;
F4系列中,GPIO要配置成复用模式,同时要将端口复用为串口模式;

接下来可用两种方式发送到PC端

一、 重定义printf函数,注意要使用这种方法的话需要将Options -> Target -> Use MicroLIB 勾上

#ifdef __GNUC__	  
   #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
   #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif 


PUTCHAR_PROTOTYPE			 
{
    USART_SendData(USART2, (uint8_t) ch);
    while(USART_GetFlagStatus(USART2,USART_FLAG_TXE) == RESET)
    {}
    return ch;
}
  • 二、 自己写发送函数,如果需要发送动态数据可使用sprintf 转义

     其实函数也跟上面的重定义函数差不多,很简单的程序

void uart_printf(uint8_t *string)
{
	uint8_t index = 0;
	do
	{
		USART_SendData(USART2,string[index]);
		while(USART_GetFlagStatus(USART2,USART_FLAG_TC) == RESET); //或USART_FLAG_TXE
		index ++;
	}while(string[index] != '\0');
}

//发送字符串
uart_printf(“usart test\n\r”);
//发送动态数据
uint8_t string[50],i;
i ++;
sprintf((char *)string, “Display Dynamic Data : %f\n\r”,1.0/i);
uart_printf(string);


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值