-
Notifications
You must be signed in to change notification settings - Fork 205
Open
Labels
xfer reworkRelated to reworking the xfer methodsRelated to reworking the xfer methods
Description
Hi, I'm setting up a comms link between an STM32F407 MCU and the Pi3B+. The code shown below works but when the data is printed out, it looks like the RX buffer overwrites the TX one. How do I stop that? The console output is shown below the code.
import spidev
from time import sleep
from tabulate import tabulate # pip3 install tabulate
ARRAY_SIZE = 56
spi = spidev.SpiDev()
spi.open(0, 0)
spi.mode = 0
spi.max_speed_hz = 10000000
spi.bits_per_word = 8
tx1 = [0xCA, 0xFE, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff,
0xff, 0x00, 0x00, 0xff, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00]
# Do an SPI transaction
# rx1 is the receive buffer
rx1 = spi.xfer2(tx1)
# Print the RX and TX arrays
headers = ['array #', 'TX', 'RX']
idx = range(0, ARRAY_SIZE, 1)
table = zip(idx, tx1, rx1)
print(tabulate(table, headers=headers))
# close the SPI port
spi.close()The console output looks like this,
array # TX RX
--------- ---- ----
0 0 0
1 0 0
2 0 0
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0
8 0 0
9 0 0
10 0 0
11 0 0
12 0 0
13 0 0
14 0 0
15 0 0
16 0 0
17 0 0
18 0 0
19 0 0
20 0 0
21 0 0
22 0 0
23 0 0
24 0 0
25 0 0
26 0 0
27 0 0
28 0 0
29 254 254
30 255 255
31 134 134
32 254 254
33 204 204
34 254 254
35 253 253
36 0 0
37 0 0
38 0 0
39 0 0
40 0 0
41 0 0
42 0 0
43 0 0
44 0 0
45 0 0
46 0 0
47 54 54
48 84 84
49 52 52
50 108 108
51 0 0
52 0 0
53 0 0
54 0 0
55 0 0
Metadata
Metadata
Assignees
Labels
xfer reworkRelated to reworking the xfer methodsRelated to reworking the xfer methods