在HAL库中的使用printf()函数和sprintf()函数

2023-05-16

在HAL库中的使用printf()函数和sprintf()函数

  • 1.printf();
  • 2.sprintf():

运行环境为:HAL库。

1.printf();

如果想要在串口中使用printf函数,就需要将这个函数重定向。

#ifdef __GNUC__
  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
     set to 'Yes') calls __io_putchar() */
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
PUTCHAR_PROTOTYPE
{
  /* Place your implementation of fputc here */
  /* e.g. write a character to the USART */
	huart1.Instance->DR = (uint8_t) ch;
 
  /* Loop until the end of transmission */
	while(__HAL_UART_GET_FLAG(&huart1, UART_FLAG_TC) == RESET){}
 
  return ch;
}

调用实例:

#include <stdio.h>
unsigned int value=3000;//12位ADC的值

printf("\r\n %.3f",value*3.3/4096);	
//在Windows中 \r\n 才是回车

此外:
在这里插入图片描述

2.sprintf():

C 库 : int sprintf(char *str, const char *format, …)

str:指向 格式转换完后存储的 字符数组的指针
format:%[flags][width][.precision][length]specifier
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

调用实例:

#include <stdio.h>
char TxData[10]={0};
unsigned int value=3000;//12位ADC的值

sprintf(TxData,"%.3f",value*3.3/4096);
HAL_UART_Transmit(&huart1,(unsigned char *)TxData,5,0xffff);
//(unsigned char*)是强制转换 无符号的指针类型。
//相反,(char*)是强制转换 有符号的指针类型。如果大于127即0x7F的数就是负数了,使用%x格式化输出,系统自动进行了符号扩展。

输出: 2.417

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在HAL库中的使用printf()函数和sprintf()函数 的相关文章

  • Ubuntu18.04安装ROS Melodic(详细,亲测安装完成,有清晰的截图步骤)

    这也是我在Ubuntu里面安装ROS的第N次 xff0c 以前每次安装过程都忘记总结了 xff0c 导致每次安装ROS都浪费了很多的时间用来解决各种问题 为了避免自己以后出现问题需要再安装 xff0c 所以写这篇博客总结一下 xff0c 这
  • 04Git从入门到入土之码云的使用及代码迁移

    1 国内代码托管中心 码云 众所周知 xff0c GitHub 服务器在国外 xff0c 使用 GitHub 作为项目托管网站 xff0c 如果网速不好的话 xff0c 严重影响使用体验 xff0c 甚至会出现登录不上的情况 针对这个情况
  • 操作系统部分习题

    操作系统部分题目 第一章 操作系统引论第二章 进程的描述与控制第三章 处理机调度与死锁第四章 存储器管理第五章 虚拟存储器第六章 输入输出系统第七章 文件管理第八章 磁盘处理器的管理 习题书籍 xff1a 计算机操作系统 xff08 第四版
  • 基于自适应反步法的三自由度直升机(3 DOF Helicopter)轨迹跟踪

    文章目录 前言一 3 DOF Helicopter实验装置二 3 DOF Helicopter模型建立及简化2 1模型建立2 1 1 俯仰轴建模2 1 2 横侧轴建模2 1 3 旋转轴建模 2 2 模型简化 三 控制器设计四 实验验证4 1
  • rabbitmq安装(rpm方式)

    rabbitmq 1 准备资料2 安装3 常用操作命令 1 准备资料 1 erlang 23 0 2 1 el7 x86 64 2 rabbitmq server 3 8 4 1 el7 noarch 3 centos7 RabbitMQ的
  • Docker入门教程

    目录 一 Docker介绍 为什么需要沙箱机制 xff1f 什么是沙箱机制 xff1f 二 Docker的优点 三 安装Docker 四 Docker的组成 问题 xff1a 是否不理解容器与镜像 xff1f 五 启动Docker 六 安装
  • ubuntu下录屏软件kazam及使用问题

    Ubuntu下视频录制工具kazam及问题 视频录制工具 在Ubuntu或linux下录制视频应该是每个用linux的朋友都会用到的 xff0c 这里笔者使用了Kazam 功能挺多的 xff0c 包括截屏 xff08 虽然ubuntu有自带
  • NUC安装Ubuntu18.04系统

    NUC安装Ubuntu18 04系统 基本信息前言安装过程配置Ubuntu18 04系统镜像安装系统解决系统字体过大 分辨率低的问题测试 其他软件安装 基本信息 Time xff1a 2021 3 9使用NUC版本 xff1a 猎豹峡谷NU
  • 11代i5 NUC使用记录

    11代i5 NUC使用记录 NUC信息NUC选型配置过程内存条固态安装安装windows安装Ubuntu18 04使用ROS2GO 其他学习总结 NUC信息 NUC基本信息 xff1a NUC xff1a Next Unit of Comp
  • ROS rosdep initupdate报错解决方法

    ROS rosdep init update报错解决方法 在安装ROS的过程中 xff0c 很多同学在执行上述指令时会提示以下错误 xff1a ERROR cannot download default sources list from
  • Ubuntu18.04下使用D435i跑ROS包和ORB-SLAM2

    Ubuntu18 04下使用D435i跑ROS包和ORB SLAM2相关问题 前言主要问题及解决方法汇总一 realsense包版本问题二 无法定位安装包问题三 警告问题四 如何检测是否发布五 利用D435i跑ORB SLAM2一点注意 后
  • 小觅双目sdk地址

    https mynt eye d sdk readthedocs io zh CN latest sdk install ubuntu src html
  • FreeRTOS移植STM32F4

    64 TOC FreeRTOS FreeRTOS移植到STM32F4上 本文章讲解一下如何将FreeRTOS移植到STM32F4开发板上 xff0c 如有不对之处 xff0c 欢迎指正 xff0c 多多交流 一 创建工程文件及代码调试 我们
  • stm32使用串口进行通讯之发送数据

    前提准备 xff1a 1 库函数基础模板 2 stlink下载器 USB TTL下载器 单片机最小开发板stm32F103C8T6 3 面包板及相关接线 4 vscode与keil的联合开发更流畅 5 串口软件 xff0c 这个下面视频有
  • 什么是事件流(总结),ECMAScript6(总结)

    1 xff0c 事件流 xff08 1 xff09 事件流是指页面 接收事件的顺序 xff08 2 xff09 假设页面中的元素都具备相同的事件 并且这些个元素之间是相互嵌套的 关系 xff08 3 xff09 那么在触发一个元素的事件时候
  • rabbitmq消息可靠性分析

    通过firehose插件跟踪消息过程 开发测试阶段用于分析消息消费的过程 xff0c 生产关闭 xff0c 以免影响整体性能 rabbitmq tracing 插件相当于Firehose 的GUI 版本 xff0c 能跟踪RabbitMQ
  • vscode拉取git代码到本地提示 在签出前,请清理存储库工作树

    最近使用vscode拉取git代码到本地提示 在签出前 请清理存储库工作树 xff0c 具体如图 xff1a 一 原因分析 原因很简单 xff0c 就是因为本地代码和git远程库代码存在冲突 xff0c 也就是你改的文件 xff0c 别人也
  • UCOSIII 系统(STM32任务管理)学习笔记

    作者 xff1a 瓴 时间 xff1a 2021 07 28 UCOSIII 系统 xff08 STM32任务管理 xff09 学习笔记 UCOSIII 系统学习笔记一 UCOSIII 任务管理1 任务状态2 任务控制块 OS TCB3 任
  • 主机字节序和网络字节序

    1 大端字节序和小端字节序 xff1a 大端字节序存储时值的高位存储在较小的地址 xff0c 值的低位存储在较大的地址 小端字节序存储时值的高位存储在较大的地址 xff0c 值的低位存储在较小的地址 以0x12345678为例 xff1a
  • 神经网络中Batch和Epoch

    随机梯度下降法是一种具有大量超参数的学习算法 通常会使初学者感到困惑的两个超参数 Batch大小和Epoch数量 它们都是整数值 xff0c 看起来做的事情是一样的 在这篇文章中 xff0c 您将发现随机梯度下降中Batch和Epoch之间

随机推荐