想用
STM32开发板和51
单片机之间无线
通信。于是试了一下,不行!
为了找出问题!我想先应该在两个51之间实现通信!51的模拟SPI读写函数如下:12M晶振下
uchar SPIx_ReadWriteByte(uchar reg)
{
uchar bit_ctr;
for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit
{
NRF24L01_MOSI = (reg & 0x80); // output 'uchar', MSB to MOSI
reg = (reg << 1); // shift next bit into MSB..
NRF24L01_SCK = 1; // Set SCK high..
reg |= NRF24L01_MISO; // capture current MISO bit
NRF24L01_SCK = 0; // ..then set SCK low again
}
return reg; // return read uchar
}
其它的函数都是照搬发烧友的,如下:
u8 NRF24L01_Write_Reg(u8 reg,u8 value);
u8 NRF24L01_Read_Reg(u8 reg);
u8 NRF24L01_Read_Buf(u8 reg,u8 *pBuf,u8 len);
u8 NRF24L01_Write_Buf(u8 reg, u8 *pBuf, u8 len);
u8 NRF24L01_TxPacket(u8 *txbuf);
u8 NRF24L01_RxPacket(u8 *rxbuf);
void RX_Mode(void);
void TX_Mode(void);
u8 NRF24L01_Check(void);
只是去掉了上面某些函数当中的SPIx_SetSpeed(SPI_SPEED_8)函数,其它的一点也没动!
利用上面的NRF24L01_Check()函数,可以检测到24L01,但就是通信不了!
大家认为问题出在哪里了?请赐教!谢谢!