NRF24L01 的控制程序主要包括以下几个函数 10、uchar SPI_RW(uchar byte)
uchar SPI_RW(uchar byte)
{ uchar bit_ctr; for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit { MOSI = (byte & 0x80); // output 'byte', MSB to MOSI byte = (byte << 1); // shift next bit into MSB.. SCK = 1; // Set SCK high..SCK:芯片控制的时钟线(SPI 时钟) byte |= MISO; // capture current MISO bit SCK = 0; // ..then set SCK low again } return(byte); // return read byte } 注:此处的MOSI和MISO都是一个bit,并不是一个byte。因此可以使MOSI依次接收变量byte,MISO依次发送到变量byte.
最基本的函数,完成GPIO 模拟SPI 的功能。将输出字节(MOSI)从MSB 循环输出,同时将输入字节(MISO)从LSB 循环移入。上升沿读入,下降沿输出。(从SCK 被初始化为低电平可以判断出)NRF24L01 的控制程序主要包括以下几个函数
uchar SPI_RW(uchar byte); 10、uchar SPI_RW(uchar byte)
uchar SPI_RW(uchar byte)
{ uchar bit_ctr; for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit { MOSI = (byte & 0x80); // output 'byte', MSB to MOSI byte = (byte << 1); // shift next bit into MSB.. SCK = 1; // Set SCK high..SCK:芯片控制的时钟线(SPI 时钟) byte |= MISO; // capture current MISO bit SCK = 0; // ..then set SCK low again } return(byte); // return read byte } 注:此处的MOSI和MISO都是一个bit,并不是一个byte。因此可以使MOSI依次接收变量byte,MISO依次发送到变量byte.
最基本的函数,完成GPIO 模拟SPI 的功能。将输出字节(MOSI)从MSB 循环输出,同时将输入字节(MISO)从LSB 循环移入。上升沿读入,下降沿输出。(从SCK 被初始化为低电平可以判断出)NRF24L01 的控制程序主要包括以下几个函数
uchar SPI_RW(uchar byte); 10、uchar SPI_RW(uchar byte)
uchar SPI_RW(uchar byte)
{ uchar bit_ctr; for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit { MOSI = (byte & 0x80); // output 'byte', MSB to MOSI byte = (byte << 1); // shift next bit into MSB.. SCK = 1; // Set SCK high..SCK:芯片控制的时钟线(SPI 时钟) byte |= MISO; // capture current MISO bit SCK = 0; // ..then set SCK low again } return(byte); // return read byte } 注:此处的MOSI和MISO都是一个bit,并不是一个byte。因此可以使MOSI依次接收变量byte,MISO依次发送到变量byte.
最基本的函数,完成GPIO 模拟SPI 的功能。将输出字节(MOSI)从MSB 循环输出,同时将输入字节(MISO)从LSB 循环移入。上升沿读入,下降沿输出。(从SCK 被初始化为低电平可以判断出) |
|