ST官方提供的例子是这样的:
[C] 纯文本查看 复制代码 _________________________ _____________________________
| ______________| |______________________ |
| | SPI1 | | SPI1 | |
| | | | | |
| | CLK(PB3) |______________________|(PB3)CLK | |
| | | | | |
| | MISO(PB4) |______________________|(PB4)MISO | |
| | | | | |
| | MOSI(PB5) |______________________|(PB5)MOSI | |
| | | | | |
| |______________| |______________________| |
| __ | | |
| |__| | | |
| USER | | |
| GND|______________________|GND |
| | | |
|_STM32H7 Master _________| |_STM32H7 Slave ______________|
这种方式有个比较明显的缺点,主从机上电次序不同,很容易造成从机CLK识别错误,即高低电平变化导致数据传输错位。
改成加入硬件SPI片选NSS引脚后,完美解决了这个问题。即如下接线方式:
[C] 纯文本查看 复制代码 _________________________ _____________________________
| ______________| |______________________ |
| | SPI1 | | SPI1 | |
| | | | | |
| | CLK(PB3) |______________________|(PB3)CLK | |
| | | | | |
| | MISO(PB4) |______________________|(PB4)MISO | |
| | | | | |
| | MOSI(PB5) |______________________|(PB5)MOSI | |
| | | | | |
| | NSS(PG10) |______________________|(PG10)NSS | |
| |______________| |______________________| |
| | | |
| | | |
| | | |
| GND|______________________|GND |
| | | |
|_STM32H7 Master _________| |_STM32H7 Slave ______________|
主机:
从机:
|