RS232 上位机发送16字节,下位机只接收到前2个

[复制链接]
2488|2
 楼主| xlcqu 发表于 2011-11-16 16:42 | 显示全部楼层 |阅读模式
上位机 一次发送16字节
DIM SENDATA() AS BYTE
SENDDATA(0)=VAL("&H" & 55)
...
...
SENDDATA(15)=VAL("&H" & AA)
SERIALPORT1.WRITE(SENDDATA,0,16)

下位机循环接收16字节
         MOVLW  0X30
         MOVWF  FSR
         MOVLW  0X10
         MOVWF  0X78
LOOP
         CALL      RECV_DATA
         MOVWF   INDF
         INCF       FSR,F
         DECFSZ  0X78,F
         GOTO      LOOP

接收一字节子程序
RECV_DATA
         BANK0
         BTFSS     PIR1,RCIF
         GOTO      $-1
         MOVF      RCREG,W
         RETURN
为什么每次只能收到前两个字节。。请高手分析
 楼主| xlcqu 发表于 2011-11-16 20:37 | 显示全部楼层
问题已经找到,OERR溢出,只要加入BCF RCSTA,SREN即可
yewuyi 发表于 2011-11-17 10:49 | 显示全部楼层
接收要使用中断,否则数据丢包是很自然的事情。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

8

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部