串口通讯时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 你将VISA的配置放到循环外面,然后再把等待和读串口分别放到flat frame的两个frame中,试一下. 谢谢,ricken 的回复,问一下,flat frame指的是什么,小弟不明白。能否指出,诉小弟愚钝。
呵呵
顺序结构,都是顺序执行,视图分为叠加的和平铺的两种。目的是强行规定执行顺序,而不是按照数据流来执行。
页:
[1]