音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

求助通信問題

作者:wangyanshuai 欄目:單片機
我用串口實現(xiàn)兩單片機之間的通信,接收的數(shù)據(jù)一次正確一次錯誤,循環(huán)正確錯誤?
有誰碰到過這種情況說一下經(jīng)驗?
2樓: >>參與討論
aibxyz

先看下軟件上,有沒有出現(xiàn)反應(yīng)不及丟失數(shù)據(jù)或緩存區(qū)溢出未處理等問題

調(diào)整下發(fā)送的頻率,看看和時間又沒什么關(guān)系

再分析其他的

3樓: >>參與討論
vico
同意,換個波特率試試!
4樓: >>參與討論
wangyanshuai
我試過了,還是不行,我又把接受到的數(shù)據(jù)顯示了一下,發(fā)現(xiàn)第二次的數(shù)據(jù)向后推了兩個地址空間,所以無法通信,不過不知道怎么會事,再一次又好了,自動恢復(fù)了?郁悶
5樓: >>參與討論
wujing198
以下是引用 wangyanshuai 在(2007-1-10 16:24:12)的發(fā)言
我試過了,還是不行,我又把接受到的數(shù)據(jù)顯示了一下,發(fā)現(xiàn)第二次的數(shù)據(jù)向后推了兩個地址空間,所以無法通信,不過不知道怎么會事,再一次又好了,自動恢復(fù)了?郁悶


第2次的數(shù)據(jù)向后推了兩個地址空間是什么意思?
6樓: >>參與討論
wangyanshuai
就是第二次接受到的數(shù)據(jù)是從規(guī)定的開始地址后的兩個地址以后
7樓: >>參與討論
慕容帝
看看發(fā)送和接收的字節(jié)數(shù)是否對應(yīng)?(發(fā)送了幾個字節(jié),接收的字節(jié)也應(yīng)該是幾)
8樓: >>參與討論
慕容帝
懷疑可能是你的接收字節(jié)比發(fā)送的多了兩個。如果可以把程序發(fā)上來給大家看看更好明白問題所在~!
9樓: >>參與討論
wangyanshuai
我是根據(jù)0DH判斷結(jié)束的,而不是字節(jié)數(shù),可以,不過我怕耽誤大家的時間啊,只要誰碰到過這種情況就告訴我,我把我的程序發(fā)上來你們看看
ORG    0000H
   LJMP   MAIN
   ORG   000BH
   LJMP  INTR0
   ORG   0023H
   LJMP  ZHUYAO
   ORG    0100H  
;--------------------寫顯示------------
XS:       CLR  P1.7    ;選通
          SETB P1.5    ;數(shù)據(jù)發(fā)送
          SETB P1.6 ;時鐘發(fā)送
     ; MOV  R0,#55H ;r0數(shù)據(jù)地址
          MOV R1,#05H  ;數(shù)據(jù)個數(shù)(5位)
;---------------循環(huán)送顯---------------
XS2:      MOV R2,#08H
          MOV A,@R0
XS1:      RLC A         ;左移
          MOV P1.5,C
          CLR P1.6
          NOP
          NOP
          SETB P1.6
          NOP
          DJNZ R2,XS1     ;發(fā)送完一個數(shù)據(jù)。地址減1
          DEC  R0
          DJNZ R1,XS2
          SETB P1.5
          SETB P1.7       ;點亮
          RET
/*****************************延時子程序****************************/
DELAY:   MOV    R6,#05FH    ;延時1.5ms
DELAY1:  MOV    R7,#10H
DELAY2:  DJNZ   R7,DELAY2
         DJNZ   R6,DELAY1
     RET
DELAY10: MOV    R6,#50H     ;延時10ms
DE1:     MOV    R7,#7BH
DE2:     DJNZ   R7,DE2
         DJNZ   R6,DE1
     RET
DELAY100:MOV    R5,#0AH
DE100:   LCALL  DELAY10
     DJNZ   R5,DE100
     RET
/*****************************取顯示代碼****************************/
QUSHU:  MOV   R0,#20H      ;取顯示代碼,如果為#40H,則不變,直接送顯。
        MOV   R1,#55H
        MOV   R7,#05H
        MOV   DPTR,#TAB
QULOOP: MOV   A,@R0
        CJNE  A,#40H,GOON
    SJMP  GOON1
GOON:   MOVC  A,@A+DPTR
GOON1:  MOV   @R1,A
        INC   R0
        INC   R1
        DJNZ  R7,QULOOP
        RET        
/***************************將串口得到的數(shù)處理后存入20后的地址空間*********/
CUNSHU: MOV   R7,#05H       ; 接收到的數(shù)據(jù)移動到20H開始的地址中,如果為#40H,則不變,直接存入。
        MOV   R1,#20H
        MOV   R0,#61H
CUNLOOP:MOV   A,@R0        
    CJNE  A,#40H,GO
    SJMP  GO1
GO:     CLR   C
        SUBB   A,#30H
GO1:    MOV   @R1,A
        INC   R0
        INC   R1
        DJNZ  R7,CUNLOOP
        RET        
GXS:     MOV R2,#40       ;發(fā)送5*8=40段
GXS1:    CLR P1.5
GXS2:    CLR P1.6
     NOP
     SETB P1.6
         DJNZ R2,GXS2
     SETB P1.5
     MOV R2,#0FFH
   GXS4: MOV R3,#0FFH
   GXS3: NOP
         DJNZ R3,GXS3
         DJNZ R2,GXS4    
     RET
TAB:    DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;------------------------------------*/
  DOG:         CLR P1.4  ;看門狗
         NOP
         NOP
         NOP
         NOP
         SETB P1.4
         RET
;---------------清0地址空間------------------------------/        
QING:   MOV   A,#00H
        MOV   R7,#0FH
QING1:  MOV   R0,#60H
    MOV   @R0,A
    DJNZ  R7,QING1
    RET
/***************************串口發(fā)送子程序,配合中斷程序,此處無中斷*************/
GSES:   CLR   ES
        SETB  P3.2
SEND2:  MOV   A,@R0
    INC   R0
    CJNE  A,#0AH,SEND
    SJMP  SENDP
SEND:    MOV   SBUF,A
SEND1:  JNB   TI,SEND1
        CLR   TI
        SJMP  SEND2
SENDP:    CLR   P3.2
    SETB  ES
    RET
/****************************中斷處理子程序***********************/
ZHUYAO: PUSH   DPH
    PUSH   DPL
    PUSH   PSW
        PUSH   ACC
        CLR    ES
    JBC    TI,SSSS1
    JNB    RI,SSSGD
    CLR    RI
      
10樓: >>參與討論
慕容帝

呵呵,程序有點長。有興趣的可以看看,一定會有收獲的。先置頂~。

11樓: >>參與討論
慕容帝
問下。是所有命令都會錯還是單獨哪個?
12樓: >>參與討論
wangyanshuai
謝謝斑竹了,我已經(jīng)解決了,我用舜的堵的方法把那些接收到的沒用的給堵上了,呵呵,拐了個彎。
我在接收到以后只有接收到特定的符號才開始存入緩沖區(qū),就可以防止多接收的那幾位。
13樓: >>參與討論
慕容帝
哦。那就好。如果有時間還是搞清楚問題原因好,避免留下隱患。
14樓: >>參與討論
LB
學習
15樓: >>參與討論
wangyanshuai
是啊,這點是肯定的,如果不行的話,我就每一步都檢測,肯定行。
16樓: >>參與討論
vico

你把關(guān)鍵的部分弄出來就oK了,這麼長的程序,看得人頭暈!

單片機 串口通信要求1,接口連結(jié)無誤2,理解RS-232通信協(xié)議3,數(shù)據(jù)收發(fā)程序.

單片機數(shù)據(jù)傳送很容易受到干擾,因此要數(shù)據(jù)校驗.一般用的奇偶校驗,但這種方法容易出現(xiàn)很多誤碼.最保險的用冗余碼校驗或者查表法,具體的你看看書.

把你的程序關(guān)鍵部分分為  發(fā)送數(shù)據(jù)程序    接收數(shù)據(jù)程序    顯示數(shù)據(jù)程序   再給大家看看@__@

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
mikroC v6.2.1.0 full PIC &PIC18 C compiler and Pat...
[求助]求emu8086
十萬火急!高手請進!
電子香煙的設(shè)計
[求助]這樣的電機和單片機連合理嗎?
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號