新手上路
- 积分
- 40
- 金钱
- 40
- 注册时间
- 2019-12-19
- 在线时间
- 13 小时
|
5金钱
2块STM32的板子,一块作主机,一块做从机。
主机给从机发送数据,我在从机的中断里接收到了。
现在问题是,我的主机怎么接收到从机的消息,我主机无论用何种方式接收,接收到的字节都是0XFF;
我这里只想接收到从机返给主机的消息,按道理来说串行的的,主机发的过程中就能接收到数据,但第一个数据应该是错的。
所以我用以下的函数想接受从机的消息,入口参数我随便写一个,可是接受到0XFF;
u8 SPI_Readbyte(u8data){
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData(SPI1,Data);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
return SPI_I2S_ReceiveData(SPI1);
}
我从机的处理过程是接收中断收到主机发送的数据
然后我再中断里直接
SPI1->DR = data;(data为我发送的数据,是正确的)
请问我错在哪了,哪里没配置对。
还有一个问题,单片机做SPI从机,我往DR里写数据是不会发送的吧,是一只存在DR里,等主机随便发个数据,一交换,主机就得到这个从机DR里的数据了吗?
弄了一整天,实在弄不出来了,求大家帮助。
|
|