SSEL是一个从机选择脚,低电平有效,用于指示被选择参与数据传输的从机。每个从机都有各自特定的从机选择输入信号。在数据处理之前,SSEL必须为低电平并在整个处理过程中保持低电平。如果在数据传输中SSEL信号变为高电平,传输将被中止。这种情况下,从机返回到空闲状态并将任何接收到的数据丢弃。
我看例程中初始化SPI控制器为从机时 SPIInit的时候SSEL为spi功能,为11值。
PINSEL0 |=
0xc0000000;
PINSEL1 |= 0x03 | (0x03
<< 2) | (0x03
<<
4);
然而在为控制器为主机时,SPIInit的时候SSEL用的是通用IO功能,为00值。
#define
SPI_CS
(1 <<
16)
IO0DIR |=
SPI_CS;
PINSEL0 |=
0xc0000000;
PINSEL1 = (0x03
<< 2) | (0x03
<<
4);
最后说明一下LPC24xx作SPI主机的话,只要P0.16管脚不选择SSEL功能,同样可以用作GPIO功能,当然如果P0.16选择为SSEL功能时,则一定需要接上拉电阻。否则不能正常通讯。
所以无论做主机还是做从机都可以用SSEL功能,但是做主机是必须需要接上拉电阻,否则只能用做GPIO功能。