質問編集履歴

1

内容の修正

2017/09/29 08:13

投稿

umechan47
umechan47

スコア17

test CHANGED
File without changes
test CHANGED
@@ -32,6 +32,58 @@
32
32
 
33
33
 
34
34
 
35
+
36
+
37
+ 修正版
38
+
39
+
40
+
41
+ ``` python2.7
42
+
43
+ msg = ser.serial.readline().encode('hex')
44
+
45
+
46
+
47
+ if len(msg) == 2*20:
48
+
49
+ dtype = msg[0:2]
50
+
51
+ d = int(msg[2:4],16)
52
+
53
+
54
+
55
+ hex_accX = msg[4:12]
56
+
57
+ hex_accY = msg[12:20]
58
+
59
+ hex_accZ = msg[20:28]
60
+
61
+ hex_temp = msg[28:34]
62
+
63
+
64
+
65
+ # Hex to Decimal
66
+
67
+ accX = int(hex_accX, 16)/float(2**24)
68
+
69
+ accY = int(hex_accY, 16)/float(2**24)
70
+
71
+ accZ = int(hex_accZ, 16)/float(2**24)
72
+
73
+ print hex_accX, hex_accY, hex_accZ, hex_temp
74
+
75
+ print accX, accY, accZ, temp
76
+
77
+ ```
78
+
79
+ で得られたデータがとなり,2個めのYの値が-ではなく正の値で出てきているため,負の値へ正しく変換するためにはどんな処理が必要でしょうか.
80
+
81
+ 00007a0f fffbe7e3 0100b297
82
+
83
+ 0.0018624663353 255.984007061 1.00272506475
84
+
85
+
86
+
35
87
  bit[31] 符号部
36
88
 
37
89
  bit[30:24] 整数部