STM32串口读写

本文介绍了如何在STM32上实现串口读写功能。提供了USART_printf()函数用于发送格式化字符串,USART_scanf()函数用于接收串口数据并进行解析。这两个函数分别使用了vsprintf和vsscanf进行处理,实现了类似C标准库中的printf和scanf的功能。通过USART_GetFlagStatus检查接收标志,确保数据正确传输。
摘要由CSDN通过智能技术生成
#Include<string.h>

void USART_printf(const char *fmt,...) 
{  
    va_list ap; 
    char string[128]; 
    va_start(ap,fmt); 
    vsprintf(string,fmt,ap); 
    USART_puts(string); 
    va_end(ap); 
} 

int USART_scanf(const char *fmt,...)
{
 int i=0,g;
 unsigned char c;
 va_list args;
 char buffer[128];
 memset(buffer,0,128);
 while(1)
 {
  if(USART_GetFlagStatus(USART1,USART_IT_RXNE)==SET)
  {
   c=USART_ReceiveData(USART1);
   USART_SendData(USART1,c);
   if((c=='\r')||(c=='\n'))
   {
    buffer[i]=0;
    break;
   }else{
    if(c=='\b'){
     i--;
    }else{
     buffer[i++]=c;
    }
   }
   for(g=0;g<500;g++);
  }
 }
 for(g=0;g<10000;g++);
 USART_SendData(USART1,0x0d);
 for(g=0;g<10000
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值