///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
////////////////////main///////////////////////////////////////////////////
#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
#include <string.h>
#include "spi.h"
#include "sx1278.h"
#include "chuanko.h"
#define u8 unsigned char
#define u16 unsigned int
////////////////////////////////////////////////////////////////
sbit LED=P2^0;
#define rx_yes LED=0;
#define rx_no LED=1;
///////////////////////////////////////////////////////////////
u8 xdata RxData[64];
u8 xdata sx1276_7_8Data[] = {"123456789009876543210"};//21個字節
u8 rf_rx_packet_length;
u8 mode;//lora--1/FSK--0
u8 Freq_Sel;
u8 Power_Sel;
u8 Lora_Rate_Sel;
u8 BandWide_Sel;
u8 Fsk_Rate_Sel;
u16 SysTime;
//////////////////////////////////////函數聲明//////////////////////////////////////////
void delay_ms(u16 z);
///////////////////////////////////////////////////////////////////////////////////////
main()
{
u8 xdata a[30]={0};
SysTime = 0;
mode = 0x01;//lora mode
Freq_Sel = 0x00;//433M
Power_Sel = 0x00;//20dB
Lora_Rate_Sel = 0x06;//擴頻因子爲12
BandWide_Sel = 0x07;//125KHZ
Fsk_Rate_Sel = 0x00;//FSK模式下的擴頻因子
sx1276_7_8_Config();//設置頻率,增益,擴頻因子,糾錯編碼率4/5,前導碼12字節
//擴頻模式初始化 //關閉過流保護,打開低噪聲放大器,打開CRC,顯式報頭,超時,增益自動校正
//preambleDetect到DIO映射 DIO0 TxDone
chuangko();
while(1)
{
sx1276_7_8_LoRaEntryRx();
if(sx1276_7_8_LoRaRxPacket())
{
sx1276_7_8_LoRaEntryTx();
sx1276_7_8_LoRaTxPacket();
delay_ms(5000);
a[0]=RxData[0]; //1
a[1]=RxData[1]; //2
a[2]=RxData[2]; //3
a[3]=RxData[3]; //4
a[4]=RxData[4]; //5
a[5]=RxData[5]; //6
a[6]=RxData[6]; //7
a[7]=RxData[7]; //8
a[8]=RxData[8]; //9
a[9]=RxData[9]; //10
a[10]=RxData[10]; //11
a[11]=RxData[11]; //12
a[12]=RxData[12]; //13
a[13]=RxData[13]; //14
a[14]=RxData[14]; //15
a[15]=RxData[15]; //16
a[16]=RxData[16]; //17
a[17]=RxData[17]; //18
a[18]=RxData[18]; //19
a[19]=RxData[19]; //20
a[20]=RxData[20]; //21
RxData[0]=0x00; //1
RxData[1]=0x00;
RxData[2]=0x00;
RxData[3]=0x00;
RxData[4]=0x00;
RxData[5]=0x00;
RxData[6]=0x00;
RxData[7]=0x00;
RxData[8]=0x00;
RxData[9]=0x00;
RxData[10]=0x00;
RxData[11]=0x00;
RxData[12]=0x00;
RxData[13]=0x00;
RxData[14]=0x00;
RxData[15]=0x00;
RxData[16]=0x00;
RxData[17]=0x00;
RxData[18]=0x00;
RxData[19]=0x00;
RxData[20]=0x00; //21
ES=0;
TI=1;
printf("DATA ");
printf("%c",a[0]); //1
printf("%c",a[1]);
printf("%c",a[2]);
printf("%c",a[3]);
printf("%c",a[4]);
printf("%c",a[5]);
printf("%c",a[6]);
printf("%c",a[7]);
printf("%c",a[8]);
printf("%c",a[9]);
printf("%c",a[10]);
printf("%c",a[11]);
printf("%c",a[12]);
printf("%c",a[13]);
printf("%c",a[14]);
printf("%c",a[15]);
printf("%c",a[16]);
printf("%c",a[17]);
printf("%c",a[18]);
printf("%c",a[19]);
printf("%c",a[20]); //21
while(!TI);
TI=0;
ES=1;
}
}
}
//////////////////////////////////////////////////////////////////////////////////////
void delay_ms(u16 z)
{
u16 x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
}