初识SPI,遇到问题,发帖请教。(已解决)

2019-10-16 02:21发布

u8 SPIx_ReadWriteByte(u8 TxData)
{
    u8 retry=0;
    while((SPI1->SR&1<<1)==0)//等待发送区空
    {
        retry++;
        if(retry>200)return 0;
    }
    SPI1->DR=TxData; //发送一个byte
    retry=0;
    while((SPI1->SR&1<<0)==0) //等待接收完一个byte
    {
        retry++;
        if(retry>200)return 0;
    }
r    eturn SPI1->DR; //返回收到的数据
}
今天学习到SPI实验了,看到SPI读写函数有点不解,为什么读和写能写在一个函数中啊?
当我读数据的时候要先发送一个数据么?
当我写完数据还要读一个数据么?

请大家指点下。谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
33条回答
彭嘉鹏
1楼-- · 2019-10-19 21:42
hjhand 发表于 2013-12-5 23:42
谢谢你的回答!
pBuffer=SPI2_ReadWriteByte(0XFF);&nbsp;&nbsp;&nbsp;//循环读数&nbsp;

看到这句很不理解 ...

我也想问:
谢谢你的回答!
pBuffer=SPI2_ReadWriteByte(0XFF);   //循环读数  

看到这句很不理解?  SPI全双工的时候,在发送的时候,同时也在接受, 那不停的写0xff就是为了擦除flash吗?如果都写进去0xff的话,那读出来的不也是0xff,难道是读回来看一下是不是擦除成功?期待原子哥的解答,TKS!!!
写进去的0XFF不会把从机上的数据给擦除吗?
xiaobudonglaosh
2楼-- · 2019-10-20 02:17
受教啦
来一颗糖
3楼-- · 2019-10-20 07:41
 精彩回答 2  元偷偷看……

一周热门 更多>