首页 > 其他分享 >STM32 VCP串口通信 浮点数printf打印的问题 保姆级教程

STM32 VCP串口通信 浮点数printf打印的问题 保姆级教程

时间:2024-09-05 09:23:42浏览次数:8  
标签:STM32 USB 串口 浮点数 打印 VCP printf usb

各位,我最近用STM32G474,设计一个电机驱动的电路。其中ADC采样供电电压,结果是个浮点数,想用printf打印出来看看。然而,电脑上都是USB的接口,没有串口,不想接USB转串口的芯片的话,就将STM32的USB直接配置成VCP(virtual Communication Port), 那么,电脑就直接将USB识别为串口,直接用printf打印,用串口调试器,就可以看到输出的结果了。

道理是这么个道理,我要说的,其实不是这个,而是,我都弄好了之后,用printf函数打印,如下

usb_printf("val =%-7d    V = %5.2f\r\n", vbus_volt, vbus_volt1);

结果却是,整数的能打印,浮点的不能打印,程序运行的结果如下

%5.2f的打印结果是 \0\0\0\0\0\0\0

我以为是我的usb_printf()函数写错了,百思不得其解。

昨天晚上茶叶喝多了,很晚都睡不着,就在知乎上搜搜看这个问题,结果还真给我搜到了。该文说是STM32CubeIDE的有个设置没有设置对。我早上来办公室试了一下,还真的是这么一回事。就是这个设置。

 

这两个库得勾选上。

看一下,我勾选上之后的运行的结果。

 看到没有,浮点的打印输出,从 \0\0\0\0\0\0\0,变成了正常的 v = 19.23的输出了。

我把这个问题写出来,就是因为如果你不知道,你就真的百思不得其解,还以为是printf函数写错了。你怎么查也查不出来,其实这个设置的问题。为了给自己留一份笔记,也为了给大家以帮助,所以,我就把这个写出来,记录下来。

关于怎么用STM32配置VCP串口通信,怎么写usb_printf()函数,我想大家都懂的,我就不重复在这里写保姆教程了。

大功告成,亲个嘴儿。

标签:STM32,USB,串口,浮点数,打印,VCP,printf,usb
From: https://blog.csdn.net/dqsh06/article/details/141917657

相关文章

  • 什么是串口服务器?
    1.什么是串口服务器?        了解串口服务器之前,我们需要先了解什么串口。串口:又叫串行数据接口,主要是用来表示传递各种的数据的通信接口,通常指COM口。一般分为RS232、RS422、与RS485三种。RS232接口:采用全双工方式传输,传输距离约为15m。RS422接口:采用全双工方式传输......
  • 1001-基于51单片机LCD液晶显示器的8路抢答器(8路,串口,LCD1602)原理图 仿真 源代码
    1001-基于51单片机LCD液晶显示器的8路抢答器(8路,串口,LCD1602)原理图仿真源代码功能描述:8路抢答器1、提前抢答视为违规抢答,蜂鸣器提示2、A机为选手按钮控制,B机为主持人控制。双机通过串口通信3、可设置抢答时间:10s,20s,30s,40s4、LCD显示抢答过程有哪些资料:1、仿真工......
  • 浮点数在电脑中如何存储的
    根据国际标准IEEE(电气和电子工程协会)754,任意一个二进制浮点数V可以表示成下面的形式(-1)^S*M*2^E-1^S表示符号位,当s=0,V表示正数,当s=1,V为负数M表示有效数字,大于等于1,小于22^E表示指数位什么意思呢?例如:5.55在二进制中是101,而后面的.5是表示1,因为小数点后面的第一位是从2的负一......
  • 家庭能源网关开发历程(三)JSY-MK-163串口中断发送接收
     前言        大家好,我是菜菜,在上一期我们主要介绍了关于JSY-MK-163串口通讯配置流程。由于上期没有打印结果,我怕有一些小伙伴还是不懂,本期我们就来实现项目主控MCU华大HC32F005的UART中断发送和接收数据的结果打印。首先,我们先看看用到UART的那些功能函数。UART功......
  • 基于Keil软件实现串口收发HEX数据包(江协科技HAL库)
    ​串口收发HEX数据包实验是基于江协科技STM32的HAL库工程模板创建的(可以在作品“基于江科大STM32创建的HAL库工程模板”中的结尾处获取工程模板的百度网盘链接)复制“OLED显示”的工程文件——“4-1 OLED显示屏”,并命名为“9-3 串口收发HEX数据包 ”。打开工程,把下面的程序......
  • python浮点数怎么写
    python提供了三种浮点值:内置的float与complex类型,以及标准库的decimal.Decimal类型。float类型存放双精度的浮点数,具体取值范围依赖于构建python的c编译器,由于精度受限,进行相等性比较不可靠。如果需要高精度,可使用decimal模块的decimal.Decimal,这种类型可以准确的表示循环......
  • 小尺寸BLE 5.2低功耗串口透传蓝牙模块 - ANS-BT103M
    ANS-BT103M是安朔科技自主开发的一款小尺寸BLE蓝牙5.2模块,它支持HID、GATT、ATT和其他配置文件,使用UART作为编程接口,用户可以使用AT命令通过UART读取或写入模块的配置,支持空中升级。支持蓝牙主从一体,一对多连接,透传速率可达60KB/s,支持定制开发。产品参数:模块型号      ......
  • 浮点数之间的比较,基本运算这些究竟是怎么实现的
    科学计算当中会用到不少浮点数的操作,这些浮点数可能是16位,32位,64位,80位甚至是128位。开源项目SoftFloat提供了一个高效的浮点运算实现,可以在没有硬件支持的情况下,高效模拟浮点数的各种操作。那么,浮点数之间的比较,基本运算这些究竟是怎么实现的呢,可以拿32位浮点数作为例子。这是3......
  • 浮点数算法的内部实现
     科学计算当中会用到不少浮点数的操作,这些浮点数可能是16位,32位,64位,80位甚至是128位。开源项目SoftFloat提供了一个高效的浮点运算实现,可以在没有硬件支持的情况下,高效模拟浮点数的各种操作。 那么,浮点数之间的比较,基本运算这些究竟是怎么实现的呢,可以拿32位浮点数作为例子。......
  • 【北京迅为】龙芯iTOP-LS2K0500开发板快速启动手册-第3章 Windows安装串口终端
      LS2K0500采用龙芯2K0500处理器,基于龙芯自主指令系统(LoongArch)架构,片内集成64位LA264处理器核。实现ACPI、DVFS/DPM动态电源功耗管理等低功耗技术,支持多种电源级别和唤醒方式,可根据具体应用场景对芯片部分功能和高速接口进行动态时钟、电源开关控制,满足工控、网......