找回密码
 立即注册
查看: 942|回复: 16

printf函数 的 格式参数; USB接口 使用 printf 打印数据

[复制链接]

该用户从未签到

550

主题

9328

回帖

1万

积分

管理员

积分
13928
发表于 2024-2-27 11:56:03 | 显示全部楼层 |阅读模式
keil C51 编译器使用 printf 打印数据时,
在%后面根据数据格式需要加关键字:8位"b", (默认)16位"h"或不加, 32位"l"

例如打印有符号十进制数据:
打印8位数据:%bd
打印16位数据:%hd 或者 %d
打印32位数据:%ld

keil C251 编译器使用 printf 打印数据时,
8位/16位不加参数, 32位加"l"

USB接口 使用 printf 打印数据时
在USB头文件前定义 #define PRINTF_HID         //将printf函数映射到USB接口
或者在USB头文件里面开启 #define PRINTF_HID定义

===有视频讲解

回复 送花

使用道具 举报

  • TA的每日心情
    开心
    前天 17:54
  • 签到天数: 132 天

    [LV.7]常住居民III

    26

    主题

    1298

    回帖

    4049

    积分

    论坛元老

    积分
    4049
    发表于 2024-2-27 14:59:57 | 显示全部楼层
    keil C51 编译器使用 printf 打印数据时,
    在%后面根据数据格式需要加关键字:8位"b", (默认)16位"h"或不加, 32位"l"

    例如打印有符号十进制数据:
    打印8位数据:%bd
    打印16位数据:%hd 或者 %d
    打印32位数据:%ld
    1.         printf("cnt8=%bu, ",cnt8++);        //C51编译器printf输出8位数据需要使用"%b"
    2.         printf("cnt16=%hu, ",cnt16++);      //C51编译器printf输出16位数据需要使用"%h"或不加参数
    3.         printf("cnt32=%lu\r\n",cnt32++);    //C51编译器printf输出32位数据需要使用"%l"
    复制代码

    keil C251 编译器使用 printf 打印数据时,8位/16位不加参数, 32位加"l"
    1.         printf("cnt8=%u, ",cnt8++);         //C251编译器printf可直接输出8位/16位数据
    2.         printf("cnt16=%u, ",cnt16++);       //C251编译器printf可直接输出8位/16位数据
    3.         printf("cnt32=%lu\r\n",cnt32++);
    复制代码

    USB接口 使用 printf 打印数据时
    在USB头文件前定义 #define PRINTF_HID      //将printf函数映射到USB接口
    或者在USB头文件里面开启 #define PRINTF_HID定义

    【USB-CDC@STC32, USB-CDC@STC8H】 中如何用
    STC32G-USB-CDC-printf.zip (50.26 KB, 下载次数: 28) STC8H-USB-CDC-printf.zip (68.44 KB, 下载次数: 28)
    【USB-HID@STC32, USB-HID@STC8H】 中如何用

    STC32G-USB-HID-printf.zip (38.63 KB, 下载次数: 22) STC8H-USB-HID-printf.zip (33.8 KB, 下载次数: 20)


    2023/7/3期,  STC32位8051实战宣讲会演示视频:

    https://www.stcaimcu.com/forum.p ... 2990&extra=page%3D1

    截图202402271502177723.jpg

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 137 天

    [LV.7]常住居民III

    37

    主题

    872

    回帖

    3990

    积分

    荣誉版主

    积分
    3990
    发表于 2024-2-27 15:57:08 | 显示全部楼层
    补充一下:
    1.   16位数据 "h" 和 'i' 同等效果
    2.  不区分大小写.
    3.  "f"        浮点数用格式[-]dddd.dddd
    4.  "e"        浮点数用格式[-]d.dddde[-]dd
    5.  "E"        浮点数用格式[-]d.ddddE[-]dd
    6.  "g"        浮点数用 e或 f格式, 无论那个对指定的值或精度更简洁
    7.  "G"        和 g格式一样, 除了可能指数前为 E而不是 e
    1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9328

    回帖

    1万

    积分

    管理员

    积分
    13928
     楼主| 发表于 2024-2-27 12:00:28 | 显示全部楼层
    这个知识点 已完善解释,大家收藏下 !
    重要的是,还补充了
    【USB-CDC@STC32, USB-CDC@STC8H】 中如何用
    【USB-HID@STC32, USB-HID@STC8H】 中如何用




    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:24
  • 签到天数: 160 天

    [LV.7]常住居民III

    67

    主题

    838

    回帖

    2792

    积分

    金牌会员

    积分
    2792
    发表于 2024-2-27 13:56:20 | 显示全部楼层
    printf函数,现在找不到输出二进制的参数,也许原生就是没有的。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    昨天 08:20
  • 签到天数: 139 天

    [LV.7]常住居民III

    17

    主题

    530

    回帖

    1237

    积分

    金牌会员

    积分
    1237
    发表于 2024-3-2 06:47:41 | 显示全部楼层
    学习了,谢谢
    不停地学习
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    7 天前
  • 签到天数: 117 天

    [LV.6]常住居民II

    3

    主题

    57

    回帖

    65

    积分

    禁止发言

    积分
    65
    发表于 2024-3-2 07:47:00 | 显示全部楼层
    keil C51 编译器使用 printf 打印数据时,
    在%后面根据数据格式需要加关键字:8位"b", (默认)16位"h"或不加, 32位"l"

    例如打印有符号十进制数据:
    打印8位数据:%bd
    打印16位数据:%hd 或者 %d
    打印32位数据:%ld
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:45
  • 签到天数: 131 天

    [LV.7]常住居民III

    6

    主题

    72

    回帖

    510

    积分

    高级会员

    积分
    510
    发表于 2024-3-17 11:21:05 | 显示全部楼层
    总结得很好,收藏了
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 09:35
  • 签到天数: 61 天

    [LV.6]常住居民II

    3

    主题

    558

    回帖

    766

    积分

    高级会员

    积分
    766
    发表于 2024-3-21 19:16:36 | 显示全部楼层
    还没使用过printf函数
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    6 天前
  • 签到天数: 40 天

    [LV.5]常住居民I

    6

    主题

    85

    回帖

    220

    积分

    中级会员

    积分
    220
    发表于 2024-4-12 10:57:42 来自手机 | 显示全部楼层
    Mark, printf 需要定义char putchar(char c)
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-6 04:20 , Processed in 0.074364 second(s), 70 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表