在keil中printf 默许是向串口中发送数据的,所以,假如运用该函数,有必要先初始化串口,不然或许引起死机的状况,并且在printf之前应该先将TI置位,摘录原因如下:
1.printf函数是调用putchar函数输入的,而putchar应该是先判别ti是否为1,不为1则等候为1。
2.Keil的串口处理比较奇妙的,我的剖析如下:
3.一般串口发送都是等TI(字节发送完标志)为1就立刻发送下一字节,因为不管是中止仍是查 询TI标志的办法,都会检测TI,因而初次发送有必要置位TI标志,使串口开端发送你的“在程序的初始化部分往串口数据寄存器SBUF里放一个字符来重用终 端显现;”办法终究效果也便是把TI置1,改成TI=1;来发动发送也是相同的(当然,不会宣布那个 字符了)。
4.中界说,调用底层的putchar()来完成.底层发送数 据到串口时,先查TI=1是否建立,死等直到TI=1时将新数据写入SBUF,函数回来,所以要先将TI置1,发动第一次传输操作.可检查反汇编相关代码 了解其作业机理!
5.自己了解:在多机通讯中,应该也要形成像 putchar()函数的机理,要有串口中止服务程序,并且是在该程序中判别TI,依据TI是不是该发送下一组数据~相同关于接纳的一方..