如何将RF96W与基于Stm32F030的控制器连接?

如何将RF96W与基于Stm32F030的控制器连接?,stm32,spi,lora,stm32f0,Stm32,Spi,Lora,Stm32f0,我已经用这些板测试了我的RF96W板,它工作正常,但当我开始将这些Lora板与基于stm32f030r8t6的控制器连接时,我无法接收任何数据。尽管我试图根据Lolin boards保持SPI配置。 板布线与SPI要求相同 Lolin工作代码: #包括 #包括 #定义RFM95_CS 15 #定义RFM95_RST 16 #定义RFM95_INT 5 RH_RF95 RF95(RFM95_CS,RFM95_INT); 无效设置() { Serial.begin(9600); while(!Ser

我已经用这些板测试了我的RF96W板,它工作正常,但当我开始将这些Lora板与基于stm32f030r8t6的控制器连接时,我无法接收任何数据。尽管我试图根据Lolin boards保持SPI配置。 板布线与SPI要求相同

Lolin工作代码:

#包括
#包括
#定义RFM95_CS 15
#定义RFM95_RST 16
#定义RFM95_INT 5
RH_RF95 RF95(RFM95_CS,RFM95_INT);
无效设置()
{
Serial.begin(9600);
while(!Serial);//等待串行端口可用
rf95.setModemConfig(RH_rf95::Bw125Cr48Sf4096);
而(!rf95.init()){
Serial.println(“LoRa无线电初始化失败”);
}
}
void循环()
{
Serial.println(“发送到rf95_服务器”);
uint8_t data[]=“你好,世界!”;
rf95.发送(数据,sizeof(数据));
rf95.waitPacketSent();
//现在等待答复
uint8_t buf[右RF95_MAX_MESSAGE_LEN];
uint8_t len=sizeof(buf);
if(rf95.waitAvailableTimeout(3000)){
//现在应该是我们的回复信息了
如果(rf95.recv(buf和len)){
Serial.print(“得到回复:”);
Serial.println((char*)buf);
//串行打印(“RSSI:”);
//Serial.println(rf95.lastRssi(),DEC);
}否则{
Serial.println(“recv失败”);
}
}否则{
println(“没有回复,rf95_服务器正在运行吗?”);
}
//延迟(400);
}
STM32F030R8T6控制器不工作代码:

#包括
#包括
uint8_t init_failed=0;
uint8_t Tx_buff[]=“你好,世界!”;
uint8接收增益[右RF95最大消息长度];
uint8_t rssi_值=0;
uint16_t len=0;
无效系统时钟配置(无效);
内部主(空)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_SPI1_Init();
//RF95_设置模式配置(Bw125Cr48Sf4096);
如果(!RF95_Init()){
初始化_失败=1;
}
而(1){
//RF95_发送(Tx_buff);
//RF95_waitPacketSent();
//如果(RF95_可用_超时(3000)){
//RF95_接收(Rx_buff);
//    }
如果(RF95_可用()){
中频(RF95_接收(Rx_buff)){
len=sizeof(Rx_buff);
}
如果(len){
uint8_t data[]=“向您问好”;
RF95_发送(数据);
RF95_waitPacketSent();
}
}
}
}
对于Lolin,board也来自GitHub。
对于ST,我正在使用GitHub的RFM95。

在没有看到相关代码的情况下,我不知道我们应该如何帮助您。关于你如何连接电路板的信息,以及关于什么工作和什么不工作的更多细节也会很有帮助。非工作代码中的注释行有什么用?如果您移除RF96W硬件,只需在MISO/MOSI上安装一个跳线-SPI工作吗?注释行仅用于将设备更改为发射机或接收机。到目前为止,非工作代码是接收方代码,要使其成为发送方,您必须取消对前面四行的注释,并在下面7行进行注释。