linux串口通信丢包,关于串口通讯。为什么我接收不到一串字符。下面是程序。发送快了会丢包,怎么办?...

满意答案

、硬件:

1、51单片机波特率设置9600比较合适再高容易问题

2、晶振选用选用11.0592MHz频率

二、软件:

1、计算波特率要准确

TH1=0xfa; //定器T1式2定自重装入

TL1=TH1; //设置波特率9600晶振11.0592MHZ.

PCON=0x80;

2、串口程序

/*****************************************

*串口1断

*****************************************/

void RXD_Int_Service() interrupt 4

{

uint8 ch;

if(RI)

{

RI=0;

Usart1.RxdDly=6; //超0.3S清空计数

Usart1.RxdBuf[Usart1.RxdCnt]=ch;

Usart1.RxdCnt++;

if(Usart1.RxdCnt>=10)

{

Usart1.RxdTrue=1; //接收确

Usart1.RxdNum=Usart1.RxdCnt;

Usart1.RxdCnt=0;

}

}

if(TI)//防止发送断

{

TI=0;

}

}

void Timer0_InSevice() interrupt 1

{

TH0=0xdc; //定义50ms 值0xfe 0x0c ,修值:0xfe 0x16;

TL0=0x00; //11.0592MHz晶振

if(Usart1.RxdDly)

{

Usart1.RxdDly--; //0.3S没接收数据清0计数

if(Usart1.RxdDly==0)

{

Usart1.RxdCnt =0; //记数清0.

}

}

}

00分享举报

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值