如下图,CS提前拉高了,
给M0P_SPI1->DATA写入后必须加些延时才行,只判断SpiTxe为空不可靠,代码要这样加延时:
static void LCD_SPI_Send(uint8_t *data, uint32_t size)
{
uint32_t i;
M0P_SPI1->SSN = FALSE;
for(i = 0; i<size; i++)
{
M0P_SPI1->DATA = data;
__NOP();
__NOP();
__NOP();
__NOP();
delay100us(2);
while(Spi_GetStatus(M0P_SPI1, SpiTxe) == FALSE){};
}
M0P_SPI1->SSN = TRUE;
}
是芯片的bug吗。。。
|