stm32printf函数的串口输出代码

本文介绍了如何在STM32F103C8T6微控制器上配置串口一与串口二,并实现printf函数的功能。通过详细步骤指导读者完成MDK配置、重定向fputc函数及USART发送接收操作。

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

stm32f103串口一与串口二printf函数输出、

因项目需要特意配置了该段代码,不喜勿喷,纯属个人笔记。

对于串口的代码网上也是很多,无非是配置问题,该代码是基于stm32f103c8t6来编程的。

接线:

USART                                                  STM32

GND                                                     GND

  T                                                           PA3

  R                                                           PA2

在项目文件内创建usart2.c文件与usart.h文件,将文件导进去进行相关串口配置便可,

以下相关配置可根据用户手册与历程代码修改。

 /*·¢ËÍÒ»¸ö×Ö½ÚÊý¾Ý*/
 void UART2SendByte(unsigned char SendData)
{	   
        USART_SendData(USART2,SendData);
        while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);	    
}  

/*½ÓÊÕÒ»¸ö×Ö½ÚÊý¾Ý*/
unsigned char UART2GetByte(unsigned char* GetData)
{   	   
        if(USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET)
        {  return 0;//ûÓÐÊÕµ½Êý¾Ý 
		}
        *GetData = USART_ReceiveData(USART2); 
        return 1;//ÊÕµ½Êý¾Ý
}
/*½ÓÊÕÒ»¸öÊý¾Ý£¬ÂíÉÏ·µ»Ø½ÓÊÕµ½µÄÕâ¸öÊý¾Ý*/
void UART2Test(void)
{
       unsigned char i = 0;

       while(1)
       {    
		 while(UART2GetByte(&i))
        {
         USART_SendData(USART2,i);
        }      
       }     
}

那么接下来就是相关printf函数的配置了

1 .MDK配置

      到工程属性的Target   -> Use MicroLIB  把勾上

 

2. 在usart2函数中要包含“stdio.h”

 

3. 重定向   “fputc”  函数,直接粘贴复制进目标文件即可

  
#if 1
#pragma import(__use_no_semihosting)             
               
struct __FILE 
{ 
	int handle; 

}; 

FILE __stdout;       

void _sys_exit(int x) 
{ 
	x = x; 
} 
//fgetcÖØ¶¨Ïò
int fputc(int ch, FILE *f)
{
	
		while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);
		USART_SendData(USART2,(uint8_t)ch);
	

	
	return ch;
}
#endif 

配置完成后便可使用

为了方便大家阅读,我也上传了一份历程参考https://download.csdn.net/download/HHHSSD/16102087

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值