我不使用的F4,用的F1,帮你测试了下:
SPI读写部分代码:
//SPI2 读写一个字节
//TxData:要写入的字节
//返回值:读取到的字节
u8 SPI2_ReadWriteByte(u8 TxData)
{
u16 retry=0;
while((SPI2->SR&1<<1)==0) //等待发送区空
{
retry++;
if(retry>=0XFFFE)return 0; //超时退出
}
SPI2->DR=TxData; //发送一个byte
retry=0;
while((SPI2->SR&1<<0)==0) //等待接收完一个byte
{
retry++;
if(retry>=0XFFFE)return 0; //超时退出
}
return SPI2->DR; //返回收到的数据
}
主函数测试代码:
while(1)
{
key=SPI2_ReadWriteByte(0XAA);
printf("key:%d\r\n",key);
delay_ms(500);
}
实测图片:
170=0XAA.自发自收测试成功。
注意:
1,SPI不要接其他外设,如果接了,那就请禁止其片选。
2,用杜邦线短接MISO和MOSI。
其他没什么要求。
|