|
发表于 2021-4-13 17:15:03
|
显示全部楼层
这个读取过应该是0X94
你那个软件SPI的最底层那几行发我看下
你用软件SPI的话参考下这个用
static unsigned char LSD_RF_SpiInOut (unsigned char mosi)
{
unsigned char i;
unsigned char onebyte;
onebyte = mosi;
for(i = 8; i > 0; i--)
{
__no_operation();
if(onebyte & 0x80)
{
LSD_SPI_SIMO_OUT(1);
}
else
{
LSD_SPI_SIMO_OUT(0);
}
__no_operation();
LSD_SPI_SCK_OUT(1);
onebyte <<= 1; // next bit
if(LSD_SPI_SOMI_IN())
{
onebyte++; // 1 found on MISO
}
__no_operation();
LSD_SPI_SCK_OUT(0);
}
return onebyte; //
}
unsigned char LSD_RF_SpiRW_Reg (unsigned char addr, unsigned char val)
{
unsigned char rc;
SX1276SPISetup();
LSD_SPI_NSS_OUT(0);
LSD_RF_SpiInOut(addr);
rc = LSD_RF_SpiInOut(val);
LSD_SPI_NSS_OUT(1);
return rc;
}
然后流程这样搞下
tSX126xError SX126x_Lora_init(void)
{
uint8_t test = 0;
if(false == LoRaConfig_Check()) //Èç¹ûÊäÈë²ÎÊý´íÎó
{
return PARAMETER_INVALID; //±¨´íÊäÈë
}
SX126X_SPI_Init(); //SPI³õʼ»¯
SX126X_InitIo(); // PAIO¿Ú³õʼ»¯
/*------------------------------------------------
SX126X Loraģʽ³õʼ»¯ -------- */
SX126X_Reset(); //¸´Î»RF
SX126xWakeup();
SX126xSetStandby(STDBY_RC); //Çл»µ½LoRamode£¬standby״̬
SX126xWriteRegister(TxClampConfig, SX126xReadRegister(TxClampConfig) | 0x1E); //SX126X оƬPAÄÚ²¿Óйýѹ±£»¤£¬Èç¹ûʧÅä»áµ¼Ö¹¦ÂʽµµÍÎÊÌ⣻
//Ð޸ļĴæÆ÷TxClampConfigÀ´ÓÅ»¯PAµÄãÐÖµ£¬Î»4-1±ØÐë
//ÉèÖÃΪ"1111¡°£¨Ä¬ÈÏΪ0100£©---2019.07.31
SX126xSetRegulatorMode( USE_DCDC );
SX126xSetPacketType( PACKET_TYPE_LORA ); //ÉèÖóÉLORAģʽ
/*------------------------------------------------
SPI ÑéÖ¤ */
test = SX126xReadRegister( REG_RX_GAIN );
//delay1ms(5000);
SX126xWriteRegister( REG_LR_PAYLOADLENGTH, 0xAA); //Ñ¡Ò»¸öÓò»µ½µÄ¼Ä´æÆ÷À´×öÑéÖ¤
//delay1ms(5000);
test = SX126xReadRegister( REG_LR_PAYLOADLENGTH );
//delay1ms(5000);
SX126xWriteRegister( REG_LR_PAYLOADLENGTH, 0x55); //Ñ¡Ò»¸öÓò»µ½µÄ¼Ä´æÆ÷À´×öÑéÖ¤
//delay1ms(5000);
test = SX126xReadRegister( REG_LR_PAYLOADLENGTH );
//delay1ms(5000);
SX126xWriteRegister( REG_LR_PAYLOADLENGTH, 0x09); //Ñ¡Ò»¸öÓò»µ½µÄ¼Ä´æÆ÷À´×öÑéÖ¤
//delay1ms(5000);
test = SX126xReadRegister( REG_LR_PAYLOADLENGTH );
if(test != 0x09)
return SPI_READCHECK_WRONG;
//delay1ms(5000);
==================================================================
然后看下你说的那个REG_RX_GAIN读取出来是不是0x94
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|