首页 > 其他分享 >不使用microlib实现STM32串口printf重定向:

不使用microlib实现STM32串口printf重定向:

时间:2023-05-31 17:25:04浏览次数:36  
标签:__ microlib code 串口 user FILE printf

不使用microlib实现STM32串口printf重定向:
突然发现有一篇markdown忘记上传了,补一下
注:使用的是CubeMX生成的工程文件
生成后,在usart.c中添加如下代码:

//user code begin 0
typedef struct __FILE FILE;
struct __FILE 
{ 
	int handle; 
}; 
FILE __stdout;           
//user code end 0



//user code begin 1
int fputc(int ch, FILE *f)
{      
	while((USART1->SR&0X40)==0);          //这里使用的是串口1,如用其他串口请自行修改
    USART1->DR = (uint8_t) ch;      
    return ch;
}
//user code end 1

之后即可在main函数中使用printf函数啦

标签:__,microlib,code,串口,user,FILE,printf
From: https://www.cnblogs.com/Asaka-QianXiang/p/17446767.html

相关文章

  • java modbus_rtu串口通讯
    基于modbus和串口通讯的Java分享本文推荐一个简单好用java实现基于modbus—rtu协议通讯方法:如果采用非标准modbus协议通讯,可以查看我的这篇博文:java实现串口通讯关于modbus的java开源库主要有以下四种:Jamod:JavaModbus实现:JavaModbus库。该库由DieterWimberger实施。Mod......
  • DPU54可替代AU9254串口USB1.1 hub芯片
    产品概述DPU54是一款高性能、低功耗4口全速USB1.1HUB控制器,上行端口兼容全速12MHz模式,4个下行端口兼容全速12MHz、低速1.5MHz两种模式。DPU54采用状态机单事务处理架构,而非单片机架构,多个事务缓冲区,这样减小了芯片的系统响应时间,用最少的硬件资源实现了USB1.1全速传......
  • proteus仿真串口
    下载VSPD下载地址安装过程没有坑,装在D盘也没事,但是只有十四天的体验这个下载地址,懂得都懂打开VSPD点addvirtualpair,就把com1和com2连起来了打开两个串口助手,注意波特率等设置要设置一样。串口一发数据,因为串口一通过VSPD连到串口二了,因此串口二会收到数据proteus里添加虚拟......
  • 串口通信原理
    笔记来源串行通信基础知识处理机与外部设备通信的两种方式:并行通信和串行通信并行通信是指数据的各个位用多条数据线同时进行传输。优点:传输速度快缺点:占用引脚资源多串行通信是指数据的分成一位一位的形式在一条传输线上逐个传输。优点:通信线路简单、占用引脚资源少缺......
  • 串口通信UART协议
    目录前言通信基本概念串口通信基础串口标准通信协议串口内部结构图串口寄存器串行口控制寄存器SCON电源控制寄存器PCONSBUF实验代码部分收获前言在这个广泛应用和计算机网络技术普及的时代,单片机的通信功能愈发重要。在WIFI、蓝牙、GPS、GSM/GPRS等应用的控制无不体现串口通信的......
  • 【Java读取串口】[rxtxSerial.dll+0x5b00]报错(使用RXTXcomm.dll)
    使用RXTXcomm报错EXCEPTION_ACCESS_VIOLATION(0xc0000005)C[rxtxSerial.dll+0x5b00]原文链接:https://blog.csdn.net/Loveme_CN/article/details/1159184931.背景项目中需要将信息通过串口方式发送至单片机,从而使用了RXTXxcomm这个工具包,本机已完成与串口工具的调试,在迁移至......
  • 使用QtCreator C++编写串口调试助手
    Qt小白一枚,喜欢嵌入式应用,以前都是使用别人的串口调试助手,学习了C++以后,自己也尝试着做了简单的串口调试助手,分享给大家吧,希望能帮助到大家,如果有错误,请大家指正。话不多说开干!1.首先看一下我设计的界面(我这里比较简单,大家可根据自己的需求进行设计)(界面设计的过程中,每一个控件......
  • Perl:sprintf函数
    在Perl中,sprintf是一个用于格式化字符串的函数。它接受一个格式字符串和一系列参数,并返回根据格式字符串格式化后的字符串。sprintf的语法如下:sprintfFORMAT,LIST其中,FORMAT是格式字符串,指定了输出的格式。LIST是需要格式化的参数列表。sprintf将根据格式字符串对参数......
  • ESP8266串口WiFi模块简单了解
    ESP8266简介ESP8266是一款超低功耗的UART-WiFi透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi无线网络上,进行互联网或局域网通信,实现联网功能。ESP8266是上海乐鑫信息科技设计的低功耗WiFi芯片,集成完整的TCP/IP......
  • Linux串口映射
    Linux串口映射在进行Linux开发过程中,发现串口插入的顺序不同,串口号会随之变化,这是由于Linux的特性决定的。根据设备的上电顺序分配ID,但是这样在程序运行过程中,出现串口变化的话,会导致程序出现错误,因此我们采用串口映射的方式,给物理串口分配一个别名,利用别名来避免这种问题。......