找回密码
 立即注册
查看: 241|回复: 6

关于keil scanf底层调用的问题

[复制链接]
  • TA的每日心情
    开心
    2024-4-4 18:10
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    7

    主题

    33

    回帖

    161

    积分

    注册会员

    积分
    161
    发表于 2024-1-26 12:38:00 来自手机 | 显示全部楼层 |阅读模式
    用scanf时候偶然发现它不光要调用_getkey,怎么还要调putchar啊!!这个网上查的不一样啊。
            至于怎么发现的,是本人在用scanf获取字符串时,串口都会莫名其妙的把电脑发送的东西回显出来。仔细检查了主函数里根本没有printf之类的发送函数。最后尝试把putchar里放了个闪灯,每次调scanf时灯都会闪,同时把putchar里的发送注掉,就不再回显了。
           真奇怪,希望大佬给予指点
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-4 18:10
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    7

    主题

    33

    回帖

    161

    积分

    注册会员

    积分
    161
     楼主| 发表于 2024-1-26 12:51:46 来自手机 | 显示全部楼层
    如图就是全部代码,每次调用sacnf输入的时候自带一个输出效果,这是为什么啊 1706244567727.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 小时前
  • 签到天数: 146 天

    [LV.7]常住居民III

    39

    主题

    884

    回帖

    4116

    积分

    荣誉版主

    积分
    4116
    发表于 2024-1-27 10:46:17 | 显示全部楼层
    没什么为什么啊

    早期的输入(键盘) 和 输出(显示器) 是分开的, 分别 接 SIO 输入和输出.

    输入的 字符, 通过 SIO 串口 送至 CPU, 显示器 上并无显示, 只能通过 putchar 函数, 送 显示器 回显 .

    点评

    哦!原来如此,以前真不知道还有这回事 本来是想把getkey putchar剥离出来分情况往不同地方重定向,这么一来还不太行,至少从sd卡里scanf一个数据总不能再调putchar原路写回去吧。 看来通用的io,还是得自己写个方法   发表于 2024-1-28 09:04
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 18:20
  • 签到天数: 161 天

    [LV.7]常住居民III

    9

    主题

    309

    回帖

    3775

    积分

    荣誉版主

    积分
    3775
    发表于 2024-1-27 17:10:04 | 显示全部楼层
    https://developer.arm.com/docume ... nce/Reference/scanf
    从Keil的文档来看,确实是调用了putchar的。
    回显其实很常见,例如你使用Windows的cmd或其它命令行工具,你是能看到输入了什么命令的。如果去掉回显,那么你也看不见正在输入的指令。但是你使用stc-isp的串口工具,它也自带了回显功能,所以你会看到两遍指令。你如果使用了不自带回显的串口工具,那么就只能通过scanf带有的putchar来获取输入内容了。这就是调用putchar的用意。

    点评

    文档里果真说的有,一直没认真读过,,, 仔细想想回显串口监视器没法显示输入了话回显确实挺方便,但某些情况就不太好了。太可惜了,这么好的输入输出方法啊,,,   发表于 2024-1-28 09:12
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-4 18:10
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    7

    主题

    33

    回帖

    161

    积分

    注册会员

    积分
    161
     楼主| 发表于 2024-1-28 09:13:42 来自手机 | 显示全部楼层
    话说这个回显能屏蔽掉吗?
    如果不行就只能用自己的io了
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-17 07:41 , Processed in 0.063000 second(s), 49 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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