欢迎光临蓝狮在线电子类配件产品网站!

新闻中心

蓝狮在线 > 新闻中心 > 行业动态 >

51单片机中为什么很少出现printf的身影

2025-02-02 01:54

  但是51单片机属于裸机开发,没有所谓的标准输出流,他能跟外部交互的,只有串口。

  51单片机用的开发语言是C语言,虽然跟标准C有点区别,但是 printf 函数还是可以用的,只要修改 printf 的输出方式,让他从串口输出,也能在电脑上看到输出信息。

  printf 函数把数据格式化后,最终调用 putchar 函数把数据写出,所以我们要做的,就是实现 putchar 函数。

  首先 printf 实现起来比较复杂,要考虑到多种输出格式,还要额外开辟存储空间。

  比如定义一个 char 类型的变量,初始化成 0x01,使用 %u 输出,虽然类型不一样,应该不影响它输出 1。

  实际上结果是 256,一个字节的 char 类型,转换成两个字节的 int,前面补0,由于 51 是大端存储,输出的时候反了。

  再比如两个 char 类型,一个 0x01 一个 0x02,同时输出的线。编译器对参数入栈的处理也不太一样。

  基于种种原因,在 51 中很少用 printf,调试的话,可以借助开发工具,也可以使用一些日志相关的库,都比 printf 要好用。

相关推荐

  • 新闻中心

  • 联系我们

    蓝狮平台登录
    蓝狮在线注册
    蓝狮平台主管
    河北省沧州市蓝狮在线集团