打印

串口接收的怪现场!!!

[复制链接]
1672|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zjucsd|  楼主 | 2015-1-29 09:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
昨天在调试串口的时候,用串口工具发送 bd bd bb ba b9 b8 b7 b6 b5 b4 b3 b2 b1 b0的时候,LPC2214仿真中断后发现接收到的是ad bd ab ba a9 b8
a7 b6 a5 b4 a3 b2 a1 b0,发现接收到的数据从第一个开始隔一个所有的高四位都是错误的。当发送a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad的时候接收
又都是正常的。
void UART1_Init(void)
{
uint16 Fdiv;

U1LCR=0x80;                 //8位为高电平的时候,可以设置波特率
Fdiv=(Fpclk/16)/57600;  // 波特率为57600
U1DLM=Fdiv/256;
U1DLL=Fdiv%256;
U1LCR=0x03;        // 8个数据位,1个起始位,1个结束位。
U1FCR=0xC1;        // 使能FIFO,14字节触发。
U1IER=0x01;        // 允许接收中断

PCREV=0;                              //有数据从上位机收到标志
PCSEND=0;                             //有数据要向上位机发送标志
UART1INIT=0;                            //数据发送完毕标志和还有后续数据标志

VICVectCntl7=0x27;
VICVectAddr7=(uint32)IRQ_UART1;
COMENABLE1;                              // 使能串行通讯中断
}
// 串行通讯中断响应程序
void __irq  IRQ_UART1(void)
{
    uint8 i;

    if(0x04==(U1IIR&0x0f))
{
     PCREV=1;      // 收到一帧数据
}
  
for(i=0;i<14;i++)
  datapc[i]=U1RBR;       // 只要读走数据就可以清除中断标志

VICVectAddr = 0x00;              // 中断处理结束
}
有哪位大侠碰到过这类问题呀,咨询缘故!!!

相关帖子

沙发
戈卫东| | 2015-1-29 09:35 | 只看该作者
可能是波特率不准

使用特权

评论回复
板凳
戈卫东| | 2015-1-29 09:35 | 只看该作者
可能是波特率不准

使用特权

评论回复
地板
戈卫东| | 2015-1-29 09:36 | 只看该作者
或者收发器太差

使用特权

评论回复
5
戈卫东| | 2015-1-29 09:36 | 只看该作者
或者干扰太大

使用特权

评论回复
6
zjucsd|  楼主 | 2015-1-29 09:38 | 只看该作者
波特率没问题 57600

使用特权

评论回复
7
zjucsd|  楼主 | 2015-1-29 09:39 | 只看该作者
干扰不太可能,因为尝试了多次,都是这样的现象,要是干扰的话没这么规律呀

使用特权

评论回复
8
yangshoot| | 2015-1-29 09:45 | 只看该作者
降低波特率,看是否正常。
查下芯片手册 ,波特率的误码率是多少,如果要用高波特率,最好加奇偶校验。
波特率不准,电路干扰都会造成串口出错

使用特权

评论回复
9
chailiyh| | 2015-1-29 09:50 | 只看该作者
下面开始妄言..
1)是否可把仿真改成透传?即单片机接到串口数据之后,立即将数据通过同一个串口发送出来;
2)检查波特率设置,如相应时钟频率、分频系数等是否正确;
3)降低波特率,如19200、9600甚至更低再进行测试;
4)禁用FIFO功能,单字节收发尝试一下。

使用特权

评论回复
10
zjucsd|  楼主 | 2015-1-29 10:03 | 只看该作者
谢谢各位大侠,原因已找到,不是软件问题,是板子硬件有问题

使用特权

评论回复
11
cainiao_123| | 2015-1-29 11:09 | 只看该作者
可能是硬件的干扰

使用特权

评论回复
12
yinhexi| | 2015-1-29 15:17 | 只看该作者
data编码后传送,硬件很容易错。例如:dsp接电脑232串口,不校验误码高。

使用特权

评论回复
13
shell.albert| | 2015-1-29 17:37 | 只看该作者
这种情况下最好是短接Tx/Rx自测一下。

使用特权

评论回复
14
mmuuss586| | 2015-1-29 17:57 | 只看该作者

学习了,硬件不稳定还有这现象;

使用特权

评论回复
15
血刀老祖| | 2015-1-30 11:13 | 只看该作者
zjucsd 发表于 2015-1-29 10:03
谢谢各位大侠,原因已找到,不是软件问题,是板子硬件有问题

具体什么问题,说说,大家也学习一下,以后预防类似问题

使用特权

评论回复
16
gaocuntong| | 2015-1-30 14:49 | 只看该作者
这种情况我也遇到过   其实硬件就是硬件   它对数据的破坏是有规律的   

使用特权

评论回复
17
dirtwillfly| | 2015-1-31 11:33 | 只看该作者
gaocuntong 发表于 2015-1-30 14:49
这种情况我也遇到过   其实硬件就是硬件   它对数据的破坏是有规律的

:handshake学习了

使用特权

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

本版积分规则

100

主题

351

帖子

3

粉丝