STM8L151G Lora测试程序,2个模块收发测试。字符固定长度。
单片机源程序如下:
- //#include <iostm8s103f3.h>
- #include <iostm8l151g4.h>
- #include "My_type.h"
- #include "main.h"
- #include "sx1276-LoRa.h"
- /**********************************************************
- 外部中断初始化
- **********************************************************/
- void Ex_Interrupt_Init(void)//外部 PD0 中断
- {
- PB_ODR_ODR3 = 0; //PB3输入
- PB_CR1_C13 = 1; //带上拉输入
- PB_CR2_C23 = 0; //外部中断关
- EXTI_CR1 = 0x80; //下降沿 中断
- }
- /*
- void TIM1_init(void)
- {
- TIM1_PSCRH = 0x1F; // 8M系统时钟经预分频f=fck/(PSCR+1)
- TIM1_PSCRL = 0x3F; // PSCR=0x1F3F,f=8M/(0x1F3F+1)=1000Hz,每个计数周期1ms
- TIM1_ARRH = 0x00; // 自动重载寄存器ARR=0x01F4=500
- //TIM1_ARRL = 0x50; // 每记数80次产生一次中断,即80ms
- TIM1_ARRL = 0x5A; // 每记数90次产生一次中断,即80ms
- TIM1_IER = 0x01; // 允许更新中断
- TIM1_CR1 = 0x01; // 计数器使能,开始计数
- }
- */
- #define CRX 0X01 //0--TX 1--RX 这里选择是发射 还是 接收
- uint8 Sx1276VerNO ;
- void main( void )
- {
- PC_DDR_DDR6=1;//OUT
- PC_CR1_C16=1; //SET PD
- PC_CR2_C26=0; //SET PD
-
- RF_GpioInt();//IO初始化
-
- RF_RST=0;
- delayms(10);
- RF_RST=1;
- delayms(200);
- Sx1276VerNO = SPIRead((u8)(REG_LR_VERSION>>8)); //获取SX1276 版本号 是0X11(V1A版本 工程版) 或者是 0X12(V1B 正式版)
- asm("nop");
-
- #if CRX
- RF_RXTXSWITH0=0;
- RF_RXTXSWITH1=1;
- RFM96_LoRaEntryRx();
- #endif
-
- while(1)
- {
-
- #if CRX
- RFM96_LoRaRxPacket();
- #else
- {
- LED=0;
- RF_RXTXSWITH0=1;
- RF_RXTXSWITH1=0;
- RFM96_LoRaEntryTx();
- RFM96_LoRaTxPacket();
- LED=1;
- delayms(9000);
- }
- #endif
- }
- }
- /**********************************************************
- 外部中断PE入口
- **********************************************************/
- #pragma vector = EXTI0_vector
- __interrupt void EXTI_PD(void)
- {
- //RF_IRQ_DS();
- //SpiWriteAddressData((REG_WRITE | 0x07), 0x01);
- /***************** CRC Check**************************/
- //u8tmp = SpiReadAddressData(InterruptStatus1);
- //if(u8tmp & 0x02)
- //RxPacket(); // 正确数据
- //RX_En();
- //RF_IRQ_EN();
-
- }
- /*
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
STM8L-1276-V1.3 test ok.zip
(1.41 MB, 下载次数: 149)
|