废话不说,上图两张。主函数只有一句话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);
---------------------------------
原子哥,把你的程序试了一下,还是不行。哎。。。问题真是不好查啊,我知道这个方案是可通的
一周热门 更多>