|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
大家都来说说串口通信误码率的问题? |
作者:longyu 栏目:单片机 |
最近在做串口通信,不知道怎么回事,发送总是数据不对,由于港开始学单片机,所以诚心向各位大侠讨教串行通信误码率的问题! 晶振频率是11。0592MHz 还有是不是有办法可以测出晶振频率到底是不是11.0592MHZ的? |
2楼: | >>参与讨论 |
作者: hotpower 于 2005/5/30 1:32:00 发布:
11.0592MHZ一般不太错,可能程序设置有问题 |
3楼: | >>参与讨论 |
作者: 后学 于 2005/5/30 8:22:00 发布:
贴程序出来 |
4楼: | >>参与讨论 |
作者: longyu 于 2005/5/30 9:07:00 发布:
程序如下! #include<absacc.h> uchar xdata Re_buff[16] _at_ 0x1000;/*定义接收缓冲区*/ uchar ch; void main() { uchar i; uchar len=0; int addr; addr=0; for(i=0;i<200;i++) { P1=0x06; XBYTE[0x1000+i]=0x00; } SCON=0x50; TMOD=0x20; TL1=0xfd; TH1=0xfd; PCON=0x00; TR1=1; //EA=1; //ES=1; RI=0; while(1) { if(RI==1) { ch=SBUF; //RI=0; P1=0x06; XBYTE[0x1000+addr]=ch; RI=0; addr++; len++; } } } |
5楼: | >>参与讨论 |
作者: longyu 于 2005/5/30 9:11:00 发布:
说明一点! 这是一个死循环,是用来持续接受的.考虑到刚开始接收的数据不准确的问题,就做了个死循环,看看接收的数据是什么. 我发送01收到的是C0 以十六进制发送时,接收到的是03 请各位大侠请教 ! |
6楼: | >>参与讨论 |
作者: hotpower 于 2005/5/31 0:29:00 发布:
调试串口最好先向PC发数据进行测试 |
7楼: | >>参与讨论 |
作者: 1121 于 2005/5/31 9:26:00 发布:
按楼上的方法办。先做模拟测试。 晶振频率是11。0592MHz,这不会是产生误码的原因。用6M,12M,2。4M的晶振时,才需要做误差分析。 |
8楼: | >>参与讨论 |
作者: meng730507 于 2005/5/31 10:16:00 发布:
很明显,如果不是两边的模式设置不配对,就是波特率不对。 看一下,是不是发送的波特率太高了。 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |