51单片机编程问题(串口很难将数据发送至上位机)

发布网友

我来回答

1个回答

热心网友

首先,串口波特率2400,作为串口波特率来源的定时器1计数方式2初值应为0XF4;而你的初装值
为0Xfd,且PCON中最高位又设置为1,那么波特率实为19200,

其次,PCON=0X80为波特率倍增设置,故而19200又倍增为38400。这已远远超出了51单片机的频
率范围,
第三,虽然设置了串口方式1(T1控波),但未设置串口中断(TI)。所以当发送完一个字符后,CPU并未产生中断信号,无法判断是否已发送完毕 ,故而持续等待中断的发生,造成时间上的占用,延缓了发送速度。追问中断TI确定需要吗?后来我加了一个ip0等于1,就能收到数据了,pcon我已经删掉了,定时器初始值确实设错了,谢谢

追答应该说:设置串口中断,会让CPU的工作变得更有序。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com