python学习小组
直播中

lee_st

12年用户 45163经验值
擅长:可编程逻辑 嵌入式技术 处理器/DSP RF/无线
私信 关注

python实战串口助手---7串口发送

上次发的帖子的接收是有异常的,昨天下班时,反复的测试,发现问题很大,晚上不想睡觉了,就起来修改调试,终于搞定一个没有异常的版本读取函数,如果有使用我代码的,把下面2个函数替换一下即可,但是还有个问题没有解决,就是显示到text文本框没有实现,我还要再继续研究一下,发送函数,一次只能发一个,超过一个就无法实现,目前还没找到解决方法,我还要继续研究一下的。

进展有点慢了,还是先把调试好的部分代码分享给大家。接收部分代码

def SerRead(self):
        while self.ser.alive:
            n = self.ser.serSer.inWaiting()
            #print ("n=%s" % n)
            try:
                self.receive_data = ''
                if n:
                    #print u"开始读取"
                    self.receive_data += self.ser.serSer.read(n).replace(binascii.unhexlify("00"), "")
                    print ("receive_data is %s" % ord(self.receive_data))
                    if self.m_rcvBox.GetValue() == 1:
                        print 'hex16'
                        self.receive_data = self.space_b2a_hex(self.receive_data)
                    print 'read5'
#以下没有实现
                    self.m_rcvtext.AppendText("end", self.receive_data + "n")
                    print 'read6'
                    self.m_rcvtext.see("end")
                    self.receive_data = ""
                    print 'read end'
                 
            except Exception as e:
            #logging.error(e)
                print 'read error'
                self.receive_data = ""
                self.ser.stop()
                self.ser = None

发送部分代码

def m_send1butOnButtonClick( self, event ):
        if self.ser.alive:
            send_data = ''
            
            send_data += str(self.m_textCtrl5.GetValue())
            print ("send_data is %s" % ord(send_data))
            
            #send_data += chr(97)
            #send_data += chr(0x64)
            if self.m_rcvBox.GetValue() == 1:
                self.ser.write(send_data, isHex=True)
            else:
                self.ser.write(send_data)


如有高手看到此贴,麻烦指点一下,谢谢!!



                                                                           发稿与2018年1月26日凌晨


更多回帖

发帖
×
20
完善资料,
赚取积分