SPI communication two MCUs - bitshift
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2016-08-12 3:12 AM
Posted on August 12, 2016 at 12:12
Hi,
I want to transmit and receive data between two STM32F401RE NUCLEO boards. Performance does not matter, so the simplest approach seems to be using the blocking HAL_SPI_TransmitReceive(..) function on both sides. One board is setup as master, one as slave, code and config are generated via CubeMX. I am pretty sure to have a correct wiring (using the same setup for SPI-bootloader communication with hardly any problems). The strange thing is that when I debug the code on the master, I receive a bit-shifted version of the data that I send on MISO. Example: I send 0xA6 on the slave, but I receive 0x9A (same byte shifted by 2 bits) on the master. This shift occurs randomly with each reboot of the MCU and then stays persistent. So if the shift once is 2 bits, it stays 2 bits even when I resend the byte many many times. When I reset the master MCU, the shift differs randomly. Do I have to flush something prior to communication? What else could I do wrong? (CPOL and all other settings are the same on master/slave.) Thanks for the help :) Janis
1 REPLY 1
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2016-08-12 4:29 AM
Posted on August 12, 2016 at 13:29
Hey,
I updated CubeMX and recreated the projects. Now everything seems to work like a charm, but I have no idea what actually caused the problem :( Thanks anyway