中断标志TI和RI需要软件置0,但在进行怎样的操作后会被置1呢
中断标志TI和RI需要软件置0,但在进行怎样的操作后会被置1呢?
还有就是串行通信的两台机子波特率是否要相同?
在发送成功 或接受成功后TI或 RI会被置1
波特率必须相同
,这个是硬件自动置位的。
波特率必需相同才能保证正常通信,你用什么速度发,我就用什么样的速度接收。
波特率可以不完全相同,有个误差范围,一般不超过3%的,因为你的使用的晶振加上一些分频后,可能不会刚好是常见的9600的整数倍。
中断标志一般都是中断触发了,就由硬件置1啊,如果执行完中断服务,自然就会由硬件清零了 毕业论文
从发起MOV SBUF,#03H 到TI被置位,有个较大的时间差,依波特率大小,费时不同,超始位、8个数据位、TB8,停止位,全部完成时才置位TI,波特率越低,这个时间就越长
TI不会被硬软件自动清零,必需由软件主动清(一般在中断函数里),当收到一个串口字节时RI被硬件置位,它也不被硬件自动清零,接收数据后也必需由软件主动清零.