我用5片STM8S003F3P 写SPI,一片做主,4片做从,使能硬件NSS,接收中断。现在的现象是用软件模式可以接收到数据,但是硬件NSS就不行啊,不知道为什么,帮帮忙啊 ,,贴上从机的代码
void main(void){
__CLK_CKDIVR = 0;
__PC_DDR |= __SPI_MISO_MSK;
__PC_DDR &= ~(__SPI_MOSI_MSK | __SPI_SCK_MSK );
__PC_CR1 |= (__SPI_MISO_MSK | __SPI_MOSI_MSK | __SPI_SCK_MSK );
__PC_CR2 &= ~(__SPI_MISO_MSK | __SPI_MOSI_MSK | __SPI_SCK_MSK );
__PA_DDR &= ~__NSS_MSK;
__PA_CR1 |= __NSS_MSK;
__PA_CR2 &= ~__NSS_MSK;
__SPI_CR1 = 0;//从模式,MSB先发,SPI模式0
__SPI_CR1 |= __CPOL;
__SPI_CR2 = 0;//双向单线,全双工,禁止软件从设备管理
//__SPI_CR2 |= __SSM;
__SPI_ICR |= __RXIE;//使能接收中断
__SPI_CR1 |= __SPE;
_asm("rim\n");
while (1);
} |