stm8 io口 spi模拟,可用于RC522

/
//功    能:SPI写数据
//输    入: 无
// 无返回值

void Write_SPI(unsigned char num)    
{  
unsigned char count=0;     
for(count=0;count<8;count++)  
{  
if((num&0x80)==0x80)
                  RC522_MOSI_HIGH;
                else
                  RC522_MOSI_LOW; 
                
                asm("nop");asm("nop");
num<<=1;    
RC522_SCK_LOW;
                
                asm("nop");asm("nop");
                RC522_SCK_HIGH;                
                
                asm("nop");asm("nop");

   



 /
//功    能:SPI读数据
//输    入: 无
//返    回:

unsigned char Read_SPI(void)  
{  


  unsigned char SPICount;                                       // Counter used to clock out the data
  
  unsigned char  SPIData;                  
  SPIData = 0;                    //下降沿有效 
  for (SPICount = 0; SPICount < 8; SPICount++)                  // Prepare to clock in the data to be read
  {
    SPIData <<=1;                                               // Rotate the data
    RC522_SCK_LOW;   
   
    
    asm("nop");asm("nop");                            // Raise the clock to clock the data out of the MAX7456
    if((PA_IDR & (1<<6))==(1<<6))
    {
      SPIData|=0x01;
    }  
    RC522_SCK_HIGH; 
    
    asm("nop");asm("nop");
                                           // Drop the clock ready for the next bit
  }                                                            // and loop back
  return (SPIData);  
  
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值