一种特殊的SPI读写

一般来讲SPI读写单个字节时候将要发送的数据放到发送寄存器中直接等待发送完毕;而读取的时候想寄存器中写入0(一个假写)就开始等待接收完毕,但一些特殊的时候必须等待开始发送或接收;如下代码:

 

 int SPI_readByte(void)
{
        U0DBUF=0;
   while(U0CSR&0x04==0x04);//等待开始接收
        while(U0CSR&0x04==0);//得到接收完毕
        U0CSR&=~0x04;//清除发接收毕标记
        return U0DBUF;
}
void SPI_SendByte(unsigned char data)
{
  U0DBUF=data;
   while(U0CSR&0x02==0x02);//等待开始发送
   while(U0CSR&0x02==0);//得到发送完毕
   U0CSR&=~0x02;//清除发送完毕标记
}

 

第一次遇到这样的问题,搞了2天就是搞不清什么原因,后来用IO模拟了SPI,然后又个搞硬件的说试试等待开始发送和接收然后再等待发送和接收结束这才搞定。

 

希望能够看到这个朋友在遇到这样的问题是能够快点搞定,O(∩_∩)O~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值