打印

51串口中断丢包问题

[复制链接]
2050|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小小子他爹|  楼主 | 2018-2-5 10:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 小小子他爹 于 2018-2-5 11:05 编辑

void timer0_init()
{
TMOD=0x20;
SCON=0x50;
PCON&=0x00;
TH1=0xFD;
TL1=0xFD;
TR1=1;
EA=1;
ES=1;
}

void serial(void) interrupt 4
{
IF (RI)
    {
    BUFF(N)=SBUF;
    N++;
    RI=0;
     }
   }
晶振11.0592
PC调试助手或单片机发送00 02 04 06 08的数据,接收是00 04 08 02 06
如果发送 00 00 02 02  04 04 06 06 08 08 接收的是00 02 04 06 08
是不是丢包了?哪里出问题了?
用调试助手改为手动逐个输入00 02 04 06 08 接收数据依然是00 04 08 02 06
这样看来和输入的速度是没关系的,看来是缓存里的数据没被取走,直到下一个数据
覆盖后才取走,结果显示的是下一个数据。

相关帖子

沙发
ayb_ice| | 2018-2-5 11:12 | 只看该作者
感觉你这是波特率不对吧
先测试下从0 ~255各收到什么数据吧,

使用特权

评论回复
板凳
caijie001| | 2018-2-5 13:24 | 只看该作者
怎么么这么奇怪??????

使用特权

评论回复
地板
小小子他爹|  楼主 | 2018-2-5 14:28 | 只看该作者
ayb_ice 发表于 2018-2-5 11:12
感觉你这是波特率不对吧
先测试下从0 ~255各收到什么数据吧,

波特率是9600呀

使用特权

评论回复
5
一路向北lm| | 2018-2-5 14:49 | 只看该作者
可以利用烧写器自动生成

使用特权

评论回复
6
小麦科技| | 2018-2-5 17:22 | 只看该作者
时间问题,波特率的计算。

使用特权

评论回复
7
小小子他爹|  楼主 | 2018-2-5 18:35 | 只看该作者
不像是中断里面的问题,我估计是设置的问题,但又看不出有什么不对的地方。

使用特权

评论回复
8
ningling_21| | 2018-2-5 19:18 | 只看该作者
小小子他爹 发表于 2018-2-5 18:35
不像是中断里面的问题,我估计是设置的问题,但又看不出有什么不对的地方。 ...

用的芯片型号是什么?

使用特权

评论回复
9
小小子他爹|  楼主 | 2018-2-5 20:28 | 只看该作者
华邦78E516

使用特权

评论回复
10
ningling_21| | 2018-2-6 20:30 | 只看该作者

BUFF(N)

这个函数是怎么写的?

使用特权

评论回复
11
oufuqiang| | 2018-2-6 21:42 | 只看该作者
经常有人说串口丢包,我就纳闷,我用一个最老的51,还不是增强型的,11.0596晶振,几十kbps速率,把一帧数据插到一首MP3里面,连续发送,单片机照样相应的好好的。有空我整理好了搞个视频上来。

使用特权

评论回复
12
619888476| | 2018-2-7 13:39 | 只看该作者
有校验吗?

使用特权

评论回复
13
zqx1000| | 2018-4-10 11:36 | 只看该作者

用MODBUS就可以,是毕业设计吧?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

53

帖子

0

粉丝