|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe |
pic12f629模擬串行接收的問題 |
| 作者:dictator 欄目:單片機 |
為什么接收時總是收不到每一幀的最后兩個字節(jié),前面的數據接收一點錯誤都沒有,如果一幀數據全部為00則可以正確收到,可以把原來緩沖區(qū)里的非零數據清為零。望各位指點 ;;;;;recieve data;;;;;;;;;;;;;;;;;;;;; R_data bcf INTCON,GIE bcf INTCON,INTF movlw 0x20 ;;save data from 20h movwf FSR call delay_46us nop nop nop nop nop nop start_bit btfsc dassin goto detect_ID call delay_93us nop nop nop nop nop movlw 0x08 movwf counter R_next bcf STATUS,C btfsc dassin goto re_1 bcf STATUS,C goto re_bit re_1 bsf STATUS,C re_bit rrf rec_data call delay_93us nop decfsz counter goto R_next call delay_93us ;nop ;call delay_46us ;call delay_46us movf rec_data,W movwf INDF clrf rec_data incf FSR goto start_bit |
| 2樓: | >>參與討論 |
| 作者: imwangyi 于 2003/7/21 11:07:00 發(fā)布:
這樣寫的思路不是很對 一般而言,RS232模擬接收的程序是用采樣的方法做的,要做去抖動工作。你這樣寫估計FFH與00H接收沒問題,但其它的就很難說了。 |
|
| 3樓: | >>參與討論 |
| 作者: dictator 于 2003/7/21 11:24:00 發(fā)布:
我沒有使用RS232 我用的是12F629的GP2直接做接收,異步通信,9600bps,而且就是每幀的最后兩字節(jié)有問題 |
|
| 4樓: | >>參與討論 |
| 作者: imwangyi 于 2003/7/21 14:23:00 發(fā)布:
前面試試這個程序 前面試試這個程序 ;;;;;recieve data;;;;;;;;;;;;;;;;;;;;; R_data bcf INTCON,GIE bcf INTCON,INTF movlw 0x20 ;;save data from 20h movwf FSR call delay_46us nop nop nop nop nop nop start_bit btfsc dassin goto detect_ID call delay_46us call delay_93us |
|
| 5樓: | >>參與討論 |
| 作者: dictator 于 2003/7/21 14:55:00 發(fā)布:
是說前面檢測起始位后空1.5位再收第一位嗎? 那不是會把第一個數據位丟掉嗎? |
|
| 6樓: | >>參與討論 |
| 作者: martin 于 2003/7/21 17:28:00 發(fā)布:
請參考精華區(qū)里面的幾個模擬串口的程序 |
|
|
|
| 免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |