keil中printf

在Keil中使用printf函数进行串口通信时,需要预先初始化串口并确保TI置位,因为printf依赖于putchar函数,该函数会等待TI为1才能发送字符。如果不初始化或置位TI,程序可能会死锁。建议在程序开始时设置TI=1以确保printf正常工作,并注意printf执行后最后一个字节可能未发送完成,避免在切换模式时丢失数据。了解printf的底层工作原理,如通过putchar和检查TI标志,对于有效使用串口通信至关重要。
摘要由CSDN通过智能技术生成

在keil中printf 默认是向串口中发送数据的,所以,如果应用该函数,必须先初始化串口,否则可能引起死机的情况,并且在printf之前应该先将TI置位,摘抄原因如下:

1.printf函数是调用putchar函数输入的,而putchar应该是先判断ti是否为1,不为1则等待为1。 如果为1则清0,然后送出一个字符。因此 你如果直接使用printf函数,你的程序就会在putchar函数中等待ti为1。这时你的程序就相当于直接死掉了。你可以通过改写putchar函数 实现自己的目的。TI相当于是初始化~不给赋初值就不干活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值