直接贴代码吧!
两篇文章值得推荐,https://segmentfault.com/a/1190000004619287#articleHeader1
http://www.cnblogs.com/zhangpengshou/archive/2012/03/12/2392068.html
import serial
import time
ser = serial.Serial('/dev/ttyUSB0',baudrate=9600,timeout=1)
#ttyUSB0是插进去的第一个 USBtoTTL 设备,CH340的驱动Ubuntu
print(ser.name)
data = [0,1,2,3,4,5,6,7,8,9]
sum1 = 0
#设置MPU9250仅输出角度,并保存
def set_9250():
ser.write(b'xffxaax02x08x00')
ser.write(b'xffxaax00x00x00')
set_9250()
kk=0
while 1:
kk = kk+1
start1 = time.clock()
while ser.read()[0] != 0x55: #确保数据从0x55开头
pass #空操作
end1 = time.clock()
l = ser.read(10)
end2 = time.clock()
for i in range(0,10):
data[i] = hex(l[i])
#print(type(data[2]))
for i in range(0, 9):
sum1 = sum1 + eval(data[i])
sum1 = sum1 + 0x55
if hex(sum1)[-2:]==eval(data[9]): #校验数据的正确性
break
Roll = ((l[2]<<8)|l[1])/32768*180
Pitch = ((l[4]<<8)|l[3])/32768*180
Yaw = ((l[6]<<8)|l[5])/32768*180
end3 = time.clock()
print('Roll: %.2f'%Roll,
'Pitch: %.2f'%Pitch,
'Yaw: %.2f'%Yaw,
'
'
)
print('1: ',end1-start1,
'2: ',end2-end1,
'3: ',end3-end2,
'Total:',end3-start1,
'count:',kk,
'
')
ser.close()
'''
b = ''
b.encode('utf-8')
print(type(b))
'''