看程序吧,测试过可以发送的。MDK的
单片机源程序如下:
- /**
- ******************************** STM32F0xx *********************************
- * @文件名 : LoraUsart.c
- * @作者 : sun
- * @库版本 : V1.5.0
- * @文件版本 : V1.0.0
- * @摘要 :Lorausart源文件
- ******************************************************************************/
-
- #include "LoraUsart.h"
-
- #include "LoraComm.h"
- #include "usart.h"
- #include "radio.h"
- #include "stdio.h"
- #include "usart.h"
- #include "sx1276-Hal.h"
- #include "sx1276.h"
- #include "sx1276-LoRaMisc.h"
- #include "sx1276-LoRa.h"
- #include "LoraComm.h"
-
- //#include "debug.h"
- typedef enum LORAUSART_t
- {
- LORA_USART_START,
- LORA_USART_RECEIVE,
- LORA_USART_SEND,
- }LORAUSART;
-
-
- /************************************************
- 函数名称 : 应用层函数,UsartToLora(非阻塞函数)
- 功 能 : 串口与LOra透出啊数据
- 参 数 :
- 返 回 值 :
- 作 者 : sun
- *************************************************/
-
- void UsartToLora(void )
- {
- uint8_t BUFFER[MAXLOADLEN] ;
- uint32_t result = 0;
- uint16_t bufferLen = 0;
- static LORAUSART t_LoraUsart = LORA_USART_START;
- if(USART1_ready_buf_ok == 1)
- {
- USART1_ready_buf_ok = 0;
- t_LoraUsart = LORA_USART_SEND;
-
- }
- switch(t_LoraUsart)
- {
- case LORA_USART_START:
- LoraReadInit(0,UPLINK_FREQUENCY ,100 ,SHORT_PREAMBLE_LENGTH);
- t_LoraUsart = LORA_USART_RECEIVE;
- break;
- case LORA_USART_RECEIVE:
- result = Radio->Process( );
- if(result == RF_RX_DONE)
- {
- Radio->GetRxPacket( BUFFER, ( uint16_t* )&bufferLen );
-
- USART1_SendNByte(BUFFER,bufferLen);
- }
- else if(result ==RF_RX_TIMEOUT)
- {
- t_LoraUsart = LORA_USART_START;
- }
- break;
- case LORA_USART_SEND:
- LoraWrite(USART1_ready_buf,USART1_ready_buf_len,UPLINK_FREQUENCY ,SHORT_PREAMBLE_LENGTH,3000);
- t_LoraUsart = LORA_USART_START;
- break;
- }
- }
复制代码
所有资料51hei提供下载:
STM32F103_SX127x_USART_LoRa.rar
(336.84 KB, 下载次数: 453)
|