首页 > 其他分享 >APM32实现printf串口打印

APM32实现printf串口打印

时间:2024-11-16 10:14:45浏览次数:3  
标签:ch return USART Keil 串口 USARTX printf APM32

Keil环境

在Keil环境中使用printf,首先需要打开Use MicroLib,这个库是keil专门为嵌入式设备定制的,比C语言自带的库如stdio、string等占用空间更小,效率更高。

首先要点击Keil的魔术棒,如下图

在这里插入图片描述

把Use MicroLib打上勾,如下图

在这里插入图片描述

还要包含头文件#include <stdio.h>,在Keil中串口重定向的如下

/**
 * @brief 重定向c库函数printf到USARTx
 * @param ch
 * @param f
 * @return
 */
int fputc(int ch, FILE *f)
{
    /* 发送一个字节数据到调试串口 */
    USART_TxData(DEBUG_USARTX, (uint8_t)ch);
    /* 等待串口数据发送完毕 */
    while (USART_ReadStatusFlag(DEBUG_USARTX, USART_FLAG_TXBE) == RESET)
        ;

    return (ch);
}

/**
 * @brief 重定向c库函数getchar,scanf到USARTx
 * @param f
 * @return
 */
int fgetc(FILE *f)
{
    /* 等待串口输入数据 */

    while (USART_ReadStatusFlag(DEBUG_USARTX, USART_FLAG_RXBNE) == RESET)
        ;
    
    return (int)USART_RxData(DEBUG_USARTX);
}

注意:GCC、IAR环境的重定向和Keil不一样,不能使用上述代码

标签:ch,return,USART,Keil,串口,USARTX,printf,APM32
From: https://blog.csdn.net/showgu/article/details/143720318

相关文章

  • 虚拟串口工具和串口调试工具详解 - 附下载地址
    简介串口开发过程中,一般需要以下工具用于开发和调试: 虚拟串口工具简介虚拟串口软件,可以在系统中虚拟出串口,这样开发人员可以在没有物理串口设备的情况下进行开发.串口调试工具简介串口调试工具主要用于给串口发送信息,测试串口是否连通,发送消息是否正常被接收等.......
  • Linux系统编译QT5.15.0及串口问题
    编译流程:1>下载QT源码源码的下载可以到qt的官网http://www.qt.io/download/ 2>解压tarxvfqt-everywhere-src-x.x.x.tar.gz注意后缀和解压方式3>配置 ./configure进行环境配制。4>编译执行make编译,时间长,大概在三四个小时左右。5>安装sudomakeinstall需要5分钟......
  • Qt | 串口调试工具实现
    点击上方"蓝字"关注我们01、QSerialPort>>>QSerialPort是Qt框架中的一个类,用于串行通信。它提供了一个简单的接口,允许开发者通过串口与外部设备(如传感器、相机、单片机等)进行数据交换。QSerialPort支持多种串口操作,可以方便地设置波特率、数据位、停止位和校验位等通......
  • ESP32串口通信
    基于ArduinoIDE开发环境编写的ESP32程序示例:通过串口与电脑通信,按下boot按键开始以1Hz的频率发送学号,再次按下则停止发送//引入ESP32的相关库#include<Arduino.h>//定义学号,这里假设学号是123456,你需要替换成你自己的真实学号constchar*studentID="123456";......
  • Xamarin.Forms-手机串口调试程序开发文档
    Xamarin.Forms手机串口调试程序开发文档1.开发背景:因工作性质特殊,需要通过手持设备与电力设备进行报文通讯,达到设备状态、地址码等数据的下发及查询功能。但因为后期手持设备厂家停产,维护不及时,造成设备稀缺,无法满足正常工作需要,特制作此手机APP,通过串口驱动连接串口转红外设备......
  • HarmonyOS蓝牙串口协议(SPP)详解:实现设备间可靠数据交换
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在智能设备互联互通的世界里,蓝牙技术扮......
  • 基于ESP32的桌面小屏幕实战[3]:硬件设计之主控模块、墨水屏和TP、USB转串口、蜂鸣器、
    1.主控模块主控用的是ESP32-S。在立创商城搜索它,找到ESP32-S,复制编号。回到嘉立创EDA,用编号搜原件。把原件放置在原理图中。按照之前的外设接口说明接线。注意,给引脚命名的时候,要单击鼠标右键,点击属性,在名称处编辑。打开这个芯片的数据手册,找到外围设计原理图。参......
  • 广州大彩串口屏输入密码后加入加载中画面
    众所周知,我们在使用大型设备或者玩游戏的时候点击开始或者运行时总会有一个加载中的界面出现,这不仅提供了缓冲时间供给cpu进行加载,而且使得我们的设备显得更加的完整,变得更加的高级。但是网上对于输入密码后加入加载中界面的文章寥寥无几,许多学者想要设置相关的内容,但是却对此......
  • ubuntu串口权限修改
    文章目录一、确认串口设备名称二、修改串口权限方法一:临时修改权限方法二:永久修改权限(推荐)三、通过udev规则修改权限(高级)ubuntu串口权限修改一、确认串口设备名称首先,我们需要确认串口设备的名称。在Ubuntu系统中,串口设备通常位于/dev/ttyS*或/dev/ttyUSB*目录下......
  • FPGA实现串口升级及MultiBoot(六)ICAPE2原语实例讲解
    本文目录索引一个指令和三种方式通过ICAPE2原语添加ICAPE2IP构建Golden位流工程MultiBoot位流工程验证example2总结代码缩略词索引:K7:Kintex7V7:Vertex7A7:Artix7MB:MicroBlaze上一篇文章种总结了MultiBoot关键技术,分为:一个指令、二种......