430 NRF24L01无线通信

2019-03-24 11:00发布

/////////////////////////读写操作/////////////////////////////////////
uchar SPI_RW(uchar byte)
{
        uchar bit_ctr;
        PORT &=~(BIT(CLK));

           for(bit_ctr=0;bit_ctr<8;bit_ctr++)               // output 8-bit
           {      



                if(byte & 0x80)
                   PORT |= BIT(MOSI);                  
                else
                {
                PORT &= ~(BIT(MOSI));                   // output 'byte', MSB to MOSI
                }

                   byte = (byte << 1);                     // shift next bit into MSB..
                   PORT |=BIT(CLK);                        // Set clk high..
                if(PIN&(BIT(MISO)))
                   byte |= BIT0;                               // capture current MISO bit
                else
                {  
                byte &=~BIT0;
                }
                   PORT &=~BIT(CLK);                        // set  clk low
           }
        PORT &=~(BIT(MOSI));                              //PULL DOWN THE MOSI
    return(byte);                                            // return read byte
}
为什么还要把MISO读取出来啊???

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
芯风作浪
2019-03-24 21:13
armcu 发表于 2014-8-20 11:50
这个和SPI的通信原理有关。SPI使用的是串行推送机制,在发送数据的同时,会接收数据。也就是说,SPI如果需 ...

谢谢

一周热门 更多>

相关问题

    相关文章