STC12C5A60S2使用双串口进行通信时,两个串口在发送数据时都没有问题,但接收数据都会丢失,求帮忙! 150

晶振是使用11.0592MHz的,波特率为2400。双串口在发送数据时都是没有问题的,但在接收时都会数据接收不全。比如从串口调试助手发送1到10这个10个数字到STC单片... 晶振是使用11.0592MHz的,波特率为2400。双串口在发送数据时都是没有问题的,但在接收时都会数据接收不全。比如从串口调试助手发送1到10这个10个数字到STC单片机,然后单片机再将接收到数据通过另一个串口发出,但结果是发送出来的只有1、3、5、7和9这个5个数,另外一个串口也是这种情况。已经测试过很多数据,凡是双数位的字符都会丢失。试过波特率1200、2400、4800和9600这4个,波特率4800和9600都是可以正常发送和接收数据,而波特率1200和2400就是上述情况,接收不正常,请会的人帮忙解决一下,看看到底是什么问题,非常感谢!
void SYS_TIMER_INIT() //定时器初始化
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
TMOD= TMOD & 0xF0;
TMOD= TMOD| 0x01;
TR0=1;
ET0=1;
}
void UART_COM1_INIT() //串口1初试化,波特率2400
{
TMOD = TMOD&0x0F;
TMOD = TMOD|0x20; //Set Timer1 as 8-bit auto reload mode
TH1 = TL1 = 0xF4; //Set auto-reload vaule
TR1 = 1;
REN = 1;
SM0 = 0;
SM1 = 1;
EA = 1;
ES = 1;
}
void UART_COM2_INIT() //串口2初试化
{
S2CON = 0x50;
BRT = 0xF4;//波特率2400
AUXR = AUXR|0x10;
IE2 = IE2|0x01;
}
展开
 我来答
修者世界
2015-08-10 · TA获得超过5852个赞
知道大有可为答主
回答量:5984
采纳率:61%
帮助的人:816万
展开全部
这是可能的,如果接收速度慢了的话,发送方速度较快,两个数据发送间隔较小,那么可能丢失数据
追问
为什么波特率4800和9600都可以,波特率2400和1200就不可以了?有没有给我一个解决方法呢?在此感谢了,真的很需要。。。。
匿名用户
2015-08-08
展开全部
完整代码发上来看看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式