国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

電子工程網(wǎng)

標(biāo)題: 【求助】懂uclinux的進(jìn)來,串口發(fā)送長字符串時(shí)出錯(cuò)。。 [打印本頁]

作者: xyj    時(shí)間: 2010-5-17 10:35
標(biāo)題: 【求助】懂uclinux的進(jìn)來,串口發(fā)送長字符串時(shí)出錯(cuò)。。
調(diào)試時(shí)候發(fā)送短的字符串沒問題,長的字符串,大概到了20個(gè)字節(jié)就出問題了,而且前面的20個(gè)左右字節(jié)正確,后面的都錯(cuò)了,而且收到的字節(jié)也多了幾個(gè)。
  1. #include
  2. #include
  3. #include
  4. #include
  5. #include

  6. #define BAUDRATE B19200            
  7. #define SERIALDEVICE "/dev/ttyS1"
  8. int main()
  9. {
  10.         int fd,ncount;
  11.         struct termios oldtio,newtio;
  12.         char buf[]="This is a simple application for serial communication\r\n";
  13.         
  14.         fd = open(SERIALDEVICE, O_RDWR | O_NOCTTY );  //        打開串口1,UART1,O_SYNC表示是同步打開的就是要把數(shù)據(jù)全都寫入才返回的。
  15.         if (fd <0)
  16.         {         
  17.                 perror(SERIALDEVICE);
  18.                 exit(-1);
  19.         }
  20.         
  21.         tcgetattr(fd,&oldtio);                                 //               
  22.         bzero(&newtio, sizeof(newtio));          //
  23.         
  24.         newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD; //串口設(shè)置為波特率19200bps,8N1,
  25.         newtio.c_iflag = IGNPAR | ICRNL;         //        IGNPAR:忽略奇偶性錯(cuò)誤;ICRNL:將回車符映射為換行符
  26.         newtio.c_oflag = 0;
  27.         newtio.c_lflag = ICANON;
  28.         
  29.         tcflush(fd, TCIFLUSH);
  30.         fcntl(fd,F_SETFL,0);                                 //        文件描述詞操作
  31.         tcsetattr(fd,TCSANOW,&newtio);                 //        選擇新的設(shè)置,TCSANOW:新設(shè)置立即生效
  32.         ncount=write(fd,buf,sizeof(buf));         //        往串口發(fā)送數(shù)據(jù)
  33.         printf("the bytes written to serial is %d\n",ncount);         //        發(fā)送的字符個(gè)數(shù)
  34.         printf("character to send is: %s\n",buf);                                 //        發(fā)送的字符串
  35.         perror("write");                                                                                 //        錯(cuò)誤        
  36.         tcsetattr(fd,TCSANOW,&oldtio);
  37.         close (fd);
  38.         return 0;
  39. }
復(fù)制代碼

作者: 老郭    時(shí)間: 2010-5-17 11:12
提示:xyj,你在分類中選擇“提問”,你的帖子就跑到上邊去了,這樣總會(huì)被人看到
作者: 一朝成名    時(shí)間: 2010-5-17 11:13
懷疑是去驅(qū)動(dòng)問題
作者: lelee007    時(shí)間: 2010-5-17 11:24
這樣的破問題10有89是波特率問題

兩邊不太匹配,剛開始幾個(gè)可以正確,到了后邊每個(gè)bit的時(shí)間差累積多了,就會(huì)發(fā)生錯(cuò)誤

這樣以來短串問題都不大,長串肯定出問題

洗衣機(jī)你算一下你兩個(gè)波特率的時(shí)間差,看20個(gè)bit的時(shí)候 是不是可以錯(cuò)開2/3個(gè)bit以上
作者: 老郭    時(shí)間: 2010-5-17 11:27
多謝成名和007。速度好快呀
作者: huangqi412    時(shí)間: 2010-5-17 11:39
波特率最容易弄.
單片機(jī)搞個(gè)捕獲中斷,發(fā)送55看時(shí)間.
作者: xyj    時(shí)間: 2010-5-17 12:13
應(yīng)該是波特率的問題。。可是我設(shè)置的沒問題。。
下面是測試的結(jié)果:


發(fā)送的字符:55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55

實(shí)際收到的字節(jié):55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 FE
作者: xyj    時(shí)間: 2010-5-17 15:27
我用示波器測了。。波形有問題,是發(fā)送端的問題,開始的20個(gè)字節(jié)都是以19200發(fā)送的,后面的好像是以9600發(fā)送的,還是串口設(shè)置的問題。。。。這是怎么回事呢。。?
作者: xyj    時(shí)間: 2010-5-17 15:28
這樣的破問題10有89是波特率問題

兩邊不太匹配,剛開始幾個(gè)可以正確,到了后邊每個(gè)bit的時(shí)間差累積多了,就會(huì)發(fā)生錯(cuò)誤

這樣以來短串問題都不大,長串肯定出問題

洗衣機(jī)你算一下你兩個(gè)波特率的時(shí)間差,看20個(gè) ...
lelee007 發(fā)表于 2010-5-17 11:24

發(fā)送端的波特率會(huì)變。。?
作者: xyj    時(shí)間: 2010-5-17 15:28
提示:xyj,你在分類中選擇“提問”,你的帖子就跑到上邊去了,這樣總會(huì)被人看到
老郭 發(fā)表于 2010-5-17 11:12

好了。。呵
作者: lelee007    時(shí)間: 2010-5-17 16:24
如果波特率的時(shí)鐘有保障,那肯定是你的驅(qū)動(dòng)的問題了

驅(qū)動(dòng)里邊把波特率給改了唄
作者: kbgyzp    時(shí)間: 2010-5-17 17:02
什么原因啊,洗衣機(jī)?真強(qiáng),本科就搞linux。以俺裸奔的經(jīng)驗(yàn),你先看看你是不是用的usb轉(zhuǎn)串口,那東東不值得信賴,再有就是底層驅(qū)動(dòng)的原因了,希望樓主揭曉答案
作者: xyj    時(shí)間: 2010-5-17 18:58
我搞定了。。謝謝各位。。
主要是我的測試程序有問題(隨隨便便找來的)。。。然后又換了個(gè)測試程序就有用了。
串口設(shè)置出的問題。。。。有的設(shè)置不知道是什么,然后就按照他的來了。。沒仔細(xì)去看。。
作者: lelee007    時(shí)間: 2010-5-17 19:04

作者: linux_Ultra    時(shí)間: 2010-5-17 19:42
newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD; //串口設(shè)置為波特率19200bps,8N1,
作者: riverpeak    時(shí)間: 2010-5-18 09:24
樓上幾位辛苦了




歡迎光臨 電子工程網(wǎng) (http://www.qingdxww.cn/) Powered by Discuz! X3.4
主站蜘蛛池模板: 国产h肉在线视频免费观看 国产huangpian视频免费 | 久久久久国产精品免费 | 99视频免费看| 四虎亚洲| 两个人在线观看的高清 | 这里都是精品 | 青青草原免费在线视频 | 国产精品福利社 | 桃花岛精品亚洲国产成人 | 久久国产精品免费视频 | 女人18毛片久久 | 91麻豆爱豆果冻天美星空 | 久久亚洲国产午夜精品理论片 | 亚洲一区二区三区四区在线 | 免费观看黄页网站 | 久久久精品免费国产四虎 | 久久se精品一区二区影院 | 四虎国产精品影库永久免费 | 免费看一级特黄a大片 | 色欧美视频| 久热中文字幕精品视频在线 | 四虎永久在线观看 | 亚洲色图在线播放 | 毛片网站在线播放 | 上游电视剧在线观看免费影视大全 | 在线看片欧美 | 欧美激情综合 | 一级特黄国产高清毛片97看片 | 果冻传媒和91制片厂a | 国产视频www | 欧美日日操| 国产一区二区三区毛片 | 又粗又长嗯啊futa | 日本在线观看中文字幕 | 四虎影院在线免费观看 | 久久久99视频 | 韩日一区二区三区 | 四虎影视久久 | 国产产一区二区三区久久毛片国语 | 久久996| 成人毛片免费看 |