发表于:2010-03-16 16:15:14
15楼
回复内容:
对:人间一笑 关于当要用到TB8时,关于VB的串口设置很麻烦. 因为VB发送数据时,发到第九位时才检测奇偶校验位,并根据"此时"奇偶校验位设置发送第九位.而不是以发送前的设置为准. 比如: 1: Dim Arr(0) As Byte 2: MSComm1.Settings = "9600,m,8,1" 3: Arr(0) = 1 4: MSComm1.Output = Arr ‘Delay X 5: MSComm1.Settings = "9600,s,8,1" 6: Arr(0) = 1 7: MSComm1.Output = Arr 8: MSComm1.Settings = "9600,m,8,1" 此时发出是0/10000000/0/1*0/10000000/1/1, 而不是0/10000000/1/1*0/10000000/0/1. 因为执行第4行命令时,当发送到奇偶校验位时,第5行已经执行过了并将校验位改为"Space"了. 如果在第四行后面加上一个超过较长的延时X(比如超过16E4秒),就可能保证第4行的输出设置由第2行决定.但是如果延时X<15E秒,第4行的输出设置将由第5行决定.如果16E4秒>X>15E4秒,校验位有可能在1位的时间里出现有高有底的情况. 奇怪的是,如果用Timer来延时,延时后的数据位可能丢失,即不被发送了. 内容的回复: