zoukankan      html  css  js  c++  java
  • 树莓派与stm32通信

    
    
    #coding:utf-8
    import serial
    import sys
    import RPi.GPIO as GPIO
    import time
    class STM(object):
        def __init__(self,port="/dev/ttyAMA0",baudrate=115200,timeout=0.5):
            self.port=port
            self.baudrate=baudrate
            self.timeout=timeout
            self.data=bytearray(33)
            self.ports=["/dev/ttyAMA0","/dev/ttyAMA0"]
            self.i=0
        def TurnOn(self):
            try:
                self.ser=serial.Serial(self.port,self.baudrate,timeout=self.timeout)
                if self.ser.isOpen():
                    print "Gyroscope is opened"
                    return True
                else:
                    self.TurnOn()
            except:
                print("陀螺仪串口打开失败,正在重试")
                time.sleep(0.5)
                if(self.i==0):
                    self.i=1
                else:
                    self.i=0
                self.port=self.ports[self.i]
                self.TurnOn()
    
        def Recive(self):
            while(True):
                try:
                    #print 123
                    self.ser.readinto(self.data)
                    a=self.data.decode(encoding='utf-8')
                    if ','in a:
                            print a
                            return a.encode('unicode-escape').decode('string_escape')
                    else:
                            pass
    
    
                    self.data=bytearray(33)
                    '''
                    if(self.data[0]==85)and(self.data[1]==81):#85是十六进制的55 代表包头
                        return self.datapros(self.data[28],self.data[29])
                    else:
                        self.ser.reset_input_buffer()
                        raise Exception
                    '''
                except:
                    print "error"
                    time.sleep(0.5)
                    self.TurnOn()
        def Send(self,message):
            print 1
            self.ser.write(message)
            self.ser.flushInput()
    chip=STM()
    chip.TurnOn()
    while(1):
                                                          
    
    
    
    
    
    
    
    
  • 相关阅读:
    Linux操作系统的进程管理
    CentOS 7网络配置工具
    Python并发编程-线程
    Python并发编程-queue
    Python并发编程-并发解决方案概述
    图Graph
    计算机网络基础之IP地址详解
    计算机网络基础之TCP/IP 协议栈
    计算机网络基础之网络设备
    计算机网络基础之OSI参考模型
  • 原文地址:https://www.cnblogs.com/uestcman/p/9203495.html
Copyright © 2011-2022 走看看