hms2006 发表于 2007-2-28 10:20:47

串口通讯时framing error?

我用labview编写了一个串口接收程序,可是在和下位机通讯时,发生了framing error during transfer.在串口调试助手的帮助下,下位机能将数据上传到计算机,以十六进制显示,。labview的串口设置和串口调试助手一致,我把下位机的程序和上位机的程序一同穿上,盼解答。
MAIN:MOV TMOD,#21H ;//定时器1工作于模式2,定时器0工作于模式1
   MOV SCON,#50H ;//串口工作于模式1,允许串口接收控制
   MOV PCON,#80H ;//SMOD=1
   MOV TH1,#0FDH
   MOV TL1,#0FDH ;//设置波特率为9600bps
   SETB TR1      ;//开启T1
   MOV TH0,#0F1H ;//T0赋初值,延时4ms
   MOV TL0,#0FEH ;//T0赋初值,延时4ms
   SETB TR0      ;//开启T0
   SETB ET0      ;//允许T0中断
   SETB EA       ;//开启总中断
   AJMP $      ;//等待中断产生

RS232:
      MOV R0,#30H;//缓冲区首地址符给R0
      MOV R5,#2   ;//发送数据长度为2
      LOOP:
      MOV A,@R0    ;//取数据到A
      MOV SBUF,A   ;//将数据 送到缓存
      WAIT:
      JBC TI,CONT;//判断发送中断标志,是1,则清为0,返到CONT
      SJMP WAIT
      CONT:
      INC R0
      DJNZ R5,LOOP
      RET

ricken 发表于 2007-2-28 10:28:07

你将VISA的配置放到循环外面,然后再把等待和读串口分别放到flat frame的两个frame中,试一下.

hms2006 发表于 2007-2-28 10:40:33

谢谢,ricken 的回复,问一下,flat frame指的是什么,小弟不明白。能否指出,诉小弟愚钝。

真名就是高杰 发表于 2007-3-1 09:34:05

呵呵

顺序结构,都是顺序执行,视图分为叠加的和平铺的两种。目的是强行规定执行顺序,而不是按照数据流来执行。
页: [1]
查看完整版本: 串口通讯时framing error?