历史上的今天
今天是:2025年05月12日(星期一)
2020年05月12日 | 关于51单片机使用printf串口调试
2020-05-12 来源:eefocus
在51系列单片机上面使用串口的时候,有时候为了方便调试看一下输出结果,会用到printf函数输出到电脑终端,再用串口助手显示。但是单片机使用printf的时候有一点需要注意的地方。
1、首先添加头文件#include "stdio.h",因为printf在这个里面
2、然后配置串口,但是在串口初始化的时候需要吧 TI = 1;否则无法发送。因为printf函数会调用putchar函数,而putchar函数会判断 TI ,不为 1 则等待,相当于死机,为 1 则清零。
3、也可以使用接受中断,但是中断里面不要再有 TI = 1;这句,否则无法发送。

就这三点,然后就可以很方便的使用printf输出了。
但是方便归方便,这个只有在调试的时候使用,除了调试,一般不推荐使用,因为一个printf函数起码要占用2K的空间,而且浮点型的更多。大大增加了代码量。
上一篇:Keil C51详细设置
史海拾趣
|
zhaojun_xf 同学写了个史上最全uart实验,但是却遇到了spritf的问题,偶要挑战之,哈哈!!为什么会出这个问题呢?因为内存不够用啦。那怎么办呢? 重写sprintf函数嘛?怎么重写呢?google or baidu 嘛。。。。。。。。。哈哈,以下程序参考printf- ...… 查看全部问答> |
|
急聘:高级布线(PCB layout)工程师 工作职责: 从事通信产品的PCB设计、仿真工作。 职位要求: 1)电子、无线电、通信或相关专业本科以上学历; 2)2年以上相关产品PCB设计开发经验; 3)熟练掌握一种或一种以上(Mentor, ...… 查看全部问答> |
|
晒晒我30分钟的果实。洞洞版本的12864+18B20+1302红外遥控带闹钟万年历源程序 12864+18B20+1302万年历源程序 芯片我用的是STC89C58BD,其他的芯片没试验,请验证, /*定义DS18B20数据线*/ sbit DQ = P1^4; //定义DS1302时钟接口 sbit clock_clk = P3 ^4;//ds1302_clk(时钟线) sbit clock_dat = P3 ^5;//ds1302_dat(数 ...… 查看全部问答> |
|
跪求帮助,小弟我遇到难题,我不知MSP430fr5739与扩展FLASH(W25X16)之间是怎么搞的,有没有哪位大侠有相关的程序,麻烦发到benbenming@sian.cn,谢谢… 查看全部问答> |
|
我们的课程设计要求设计一个医用秒表计时器,要求如下 1)医用高精度计时秒表 精度达0.001 启动按钮、暂停按钮及清零按钮 设计每到一秒钟有声音提醒功能,可通过按钮打开及关闭该提醒音 可记录3次或3次以上数据(分别显示或一起显示均可) 硬 ...… 查看全部问答> |




