中级会员
 
- 积分
- 222
- 金钱
- 222
- 注册时间
- 2013-9-21
- 在线时间
- 0 小时
|
把例程的spi读写函数拆成了2个
u8 SPI2_Write(u8 data)
{
u8 retry=0;
while((SPI2->SR&0X02)==0) //等待数据发送完
{
retry++;
if(retry>=0XFE)return 0;
}
SPI2->DR=data; //data是要发送的数据
return 0;
}
u8 SPI2_Read(void)
{
u8 retry=0;
while((SPI2->SR&0X01)==0) //等待数据接收完
{
retry++;
if(retry>=0XFE)return 0;
}
return SPI2->DR; //data是接收到的数据
}
下边是页写函数
void Flash_WritePage(u32 add,u8 *data)
{
u16 i;
Flash_Write_EN();
SPI2_CS=0;
SPI2_Write(0X02);
SPI2_Write((u8)add>>16);
SPI2_Write((u8)add>>8);
SPI2_Write((u8)add);
for(i=0;i<256;i++)
{
SPI2_Write(data);
}
SPI2_CS=1;
while((Flash_ReadSR()&0X01)==0X01);程序一直在这等待忙信号空闲
}
发现读出的状态寄存器的值是0XFF,是不是spi读函数不对,还是别的地方出错了。 |
|