废话不说,上图两张。主函数只有一句话while(){SPI2_ReadWriteByte(0xAA);
发送接收函数如下:
uint8_t SPI2_ReadWriteByte(uint8_t TxData){ while (SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_TXE) == RESET);
/*!< Send byte through the SPI1 peripheral */ SPI_I2S_SendData(SPIx, TxData);
/*!< Wait to receive a byte */ while (SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_RXNE) == RESET);
/*!< Return the byte read from the SPI bus */ return SPI_I2S_ReceiveData(SPIx);}
SCK的时钟
MOSI的时钟。看样子已经发送出0xAA 了,但是为什么接收到的是0?
但是为什么每次用串口发送MISO接收到的数据出来时都是0。
如果打开接收中断还会陷入死机的状态。
死在了这句话
while (SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_RXNE) == RESET);
---------------------------------
原子哥, SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; 这句你是设置成两线全双工还是什么?
一周热门 更多>