blueice2011 发表于 2012-10-29 11:23:23

咨询点关于AVR串口接收的问题?

我做了一个东西,接收串口扫描枪的数据,在实际应该中,有时候接收到数据少一位,一般都少第一位。做了好几个,有的出现,有的又不出现!很郁闷!

想问一下,这个可能是什么原因造成的?另外,我写的程序没有加奇偶校验,如果加上奇偶检验,会改善这个错误吗?奇偶校验时,如果出现校验错误,AVR会自动处理吗?还是写程序处理?处理的方向是什么?

谢谢!

qwermhb 发表于 2012-10-29 13:08:22

是中断接收吗?

blueice2011 发表于 2012-10-29 13:09:04

是的,中断接收!

qwermhb 发表于 2012-10-29 13:17:33

blueice2011 发表于 2012-10-29 13:09 static/image/common/back.gif
是的,中断接收!

你怎么知道少一位啊
你找到是发送设备的问题还是接受设备的问题没?

blueice2011 发表于 2012-10-29 13:23:11

qwermhb 发表于 2012-10-29 13:17 static/image/common/back.gif
你怎么知道少一位啊
你找到是发送设备的问题还是接受设备的问题没?

因为我把接收到的字符显示出来!有时候显示的就少一位!

我想应该是接收的问题,因为发送的扫描枪是购买的,呵呵 !

qwermhb 发表于 2012-10-29 13:25:11

blueice2011 发表于 2012-10-29 13:23 static/image/common/back.gif
因为我把接收到的字符显示出来!有时候显示的就少一位!

我想应该是接收的问题,因为发送的扫描枪是购买 ...

小一位是什么意思啊?少了一个字节?

blueice2011 发表于 2012-10-29 13:49:44

qwermhb 发表于 2012-10-29 13:25 static/image/common/back.gif
小一位是什么意思啊?少了一个字节?

对,比如说扫描的字符是"ABCDEFGHIJK”,而,接收到的字符显示为:"BCDEFGHIJK”!

qwermhb 发表于 2012-10-29 14:07:24

blueice2011 发表于 2012-10-29 13:49 static/image/common/back.gif
对,比如说扫描的字符是"ABCDEFGHIJK”,而,接收到的字符显示为:"BCDEFGHIJK”! ...

你试过用PC发数据给接收器没?是不是情况一样?

blueice2011 发表于 2012-10-29 14:15:45

我现在是,出错的设备,换别的地方220V就行了(三相220V,每两根线的电压有差异)。

实在想不通为什么跟电源有关系。我现在想通过增加校验位,来改善这种接收错误,就是不知道能不能实现!

qwermhb 发表于 2012-10-29 14:26:49

blueice2011 发表于 2012-10-29 14:15 static/image/common/back.gif
我现在是,出错的设备,换别的地方220V就行了(三相220V,每两根线的电压有差异)。

实在想不通为什么跟电 ...

贴代码吧

blueice2011 发表于 2012-10-29 14:57:34

这个是中断函数,很简单的:
void uart_rx(void)
{
        if(flag==0);
        {
                rdata=UDR;
                m++;
                flag=1;
        }
}
接收到的数据存在rdata数组里面。
我想知道,利用奇偶校验,能不能改善上述那种接收错误!

blueice2011 发表于 2012-10-29 16:47:45

顶一下,等回复!

faduo2012 发表于 2012-10-29 17:05:34

短距离传送可以不用奇偶校验的,是不是你硬件问题啊,得排除啊
页: [1]
查看完整版本: 咨询点关于AVR串口接收的问题?