SPI发送、接收机制

函数实例:

u8 SPI1_ReadWriteByte(u8 TxData)
{                      
 
  while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET){}
    
    SPI_I2S_SendData(SPI1, TxData); 
        
  while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET){} 
 
    return SPI_I2S_ReceiveData(SPI1); 
             
}

函数发送前,先获取SPI_I2S_FLAG_TXE的标记位状态,获取函数:SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE);然后用while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET)进行条件判断;如果标记位是0,表示spi没有发送完成,此时进入while循环判断;如果捕获到标记位是1,表示spi一次数据发送完成,1不等于RESET,程序跳出while循环执行下边的语句:SPI_I2S_SendData(SPI1, TxData);  完成数据的发送。接收过程与发送的实现方法基本一致,只是需要检测判断的标志位不一样,接收判断的标志位是接收区是否为空的标记位。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值