咨询点关于AVR串口接收的问题?
我做了一个东西,接收串口扫描枪的数据,在实际应该中,有时候接收到数据少一位,一般都少第一位。做了好几个,有的出现,有的又不出现!很郁闷!想问一下,这个可能是什么原因造成的?另外,我写的程序没有加奇偶校验,如果加上奇偶检验,会改善这个错误吗?奇偶校验时,如果出现校验错误,AVR会自动处理吗?还是写程序处理?处理的方向是什么?
谢谢! 是中断接收吗? 是的,中断接收! blueice2011 发表于 2012-10-29 13:09 static/image/common/back.gif
是的,中断接收!
你怎么知道少一位啊
你找到是发送设备的问题还是接受设备的问题没? qwermhb 发表于 2012-10-29 13:17 static/image/common/back.gif
你怎么知道少一位啊
你找到是发送设备的问题还是接受设备的问题没?
因为我把接收到的字符显示出来!有时候显示的就少一位!
我想应该是接收的问题,因为发送的扫描枪是购买的,呵呵 ! blueice2011 发表于 2012-10-29 13:23 static/image/common/back.gif
因为我把接收到的字符显示出来!有时候显示的就少一位!
我想应该是接收的问题,因为发送的扫描枪是购买 ...
小一位是什么意思啊?少了一个字节? qwermhb 发表于 2012-10-29 13:25 static/image/common/back.gif
小一位是什么意思啊?少了一个字节?
对,比如说扫描的字符是"ABCDEFGHIJK”,而,接收到的字符显示为:"BCDEFGHIJK”! blueice2011 发表于 2012-10-29 13:49 static/image/common/back.gif
对,比如说扫描的字符是"ABCDEFGHIJK”,而,接收到的字符显示为:"BCDEFGHIJK”! ...
你试过用PC发数据给接收器没?是不是情况一样? 我现在是,出错的设备,换别的地方220V就行了(三相220V,每两根线的电压有差异)。
实在想不通为什么跟电源有关系。我现在想通过增加校验位,来改善这种接收错误,就是不知道能不能实现! blueice2011 发表于 2012-10-29 14:15 static/image/common/back.gif
我现在是,出错的设备,换别的地方220V就行了(三相220V,每两根线的电压有差异)。
实在想不通为什么跟电 ...
贴代码吧 这个是中断函数,很简单的:
void uart_rx(void)
{
if(flag==0);
{
rdata=UDR;
m++;
flag=1;
}
}
接收到的数据存在rdata数组里面。
我想知道,利用奇偶校验,能不能改善上述那种接收错误! 顶一下,等回复! 短距离传送可以不用奇偶校验的,是不是你硬件问题啊,得排除啊
页:
[1]