怎么实现nrf24l01双向通信和串口通信时,通信协议怎么写啊?最重要是校验码的程序编写.

2024-12-04 17:23:00
推荐回答(2个)
回答1:

一、程序代码
/**************************************************
函数:SPI_RW()

描述:
根据SPI协议,写一字节数据到nRF24L01,同时从nRF24L01
读出一字节
/**************************************************/
uchar SPI_RW(uchar byte)
{
uchar i;
for(i=0; i<8; i++) // 循环8次
{
MOSI = (byte & 0x80); // byte最高位输出到MOSI
byte <<= 1; // 低一位移位到最高位
SCK = 1; // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据
byte |= MISO; // 读MISO到byte最低位
SCK = 0; // SCK置低
}
return(byte); // 返回读出的一字节
}
/**************************************************/
二、NRF24L01不是接收到数据后自动进行CRC检验的吗?不用编程啊。

回答2:

呵,给楼主提个建议,很多象这种产品做的串口校验都是很简单的,因为速度要那你可以逆向思维一下,全部XOR后得到E0,你再把E0跟校验码2C异或一下就