SPI调试过程中,经常遇到的问题。
1、4种模式
时钟的极性和采样的时机主从双方需要保持一致。当然,数据传输的MSB还是LSB也需要注意。
2、SPI读写操作
在操作SPI时,先要使能片选CS,操作完成后,再关闭片选。
ClrPIN_CS();
SPI_WRITE_READ(tx_buf, num, rx_buf);
Delay(t);
SetPIN_CS();
SPI的读写是同时进行的,因此tx_buf [i]和rx_buf[i]在时序上一一对应。
3、阻塞延时
需要注意的是,SPI_WRITE_READ(tx_buf, num, rx_buf);并不是一个阻塞操作,完成收发需要一段时间,一般可以采样主动固定延时或者查询操作完成标志的延时。这样,才能保证能正确读取到SPI返回数据。