我进了中断后就出不来了 。。
我再上电后读取 寄存器的值,寄存器中的值也不对,我的读函数是否有问题?
u8 read_ch432data(u8 addr,u8 spi_scs)
{
u8 dat;
addr<<=2;
addr&=0xfd;
start_spi(spi_scs); //选择相应片选
SPIx_ReadWriteByte(addr);
dat=SPIx_ReadWriteByte(0xff);
stop_scs(spi_scs);
return dat;
}
u8 SPIx_ReadWriteByte(u8 TxData)
{
u8 retry = 0;
// while((SPI1->SR&(1<<1)) == 0) //等待发送区空
while(!(SPI1->SR & 0X0002))
{
retry++;
if(retry > 200)
{
return 0;
}
}
SPI1->DR = TxData; //发送一个byte
retry = 0;
// while((SPI1->SR&1<<0) == 0) //等待接收完一个byte
while(!(SPI1->SR & 0X0001))
{
retry++;
if(retry >200)
{
return 0;
}
}
return SPI1->DR; //返回接收到的数据
}