STM32F103 SX1278 驱动

该博客详细介绍了如何在STM32F103上驱动SX1278模块,实现LoRa通信的收发功能。通过MDK5.25和STM32标准库V3.5.0,结合sx12xxDrivers-V2.1.0驱动,作者调整了频率和带宽,并处理了编译问题。在main.c中定义了发送和接收数据的宏,并实现了发送数据后打印提示以及接收到数据后的串口打印。此外,还修改了SX1276的SPI抽象层接口。整个工程代码可供参考。
摘要由CSDN通过智能技术生成

本文记录在SX1278 在STM32F103 驱动,实现收发数据功能。(SPI 驱动参考 https://www.cnblogs.com/T0213-ZH/articles/10573067.html)

编译环境:MDK5.25

STM32标准库:V3.5.0

SX1278驱动:sx12xxDrivers-V2.1.0 (https://www.semtech.com/uploads/documents/sx12xxDrivers-V2.1.0.zip)

                       相关文档 https://www.semtech.com/products/wireless-rf/lora-transceivers/sx1278

 

1、MDK工程目录(创建工程方式略)

收发数据由宏“ SX1276_RX_DEF" 区别,定义了为接收数据,未定义为发送数据

2、修改默认sx1276-LoRa.c 里面默认的频率与带宽

 编译时出现bool 没定义,增加 bool类型头文件,sx1276.h文件里

 

main.c 函数实现如下, 发送功能:每间隔1s 发送一组数据  发送完成后打印一串数据“lora send ok”, 接收功能:收到数据后串口打印(本全程打印 ”lora send data“)

#include "platform.h"

static  uint32_t TimeingDelay = 0; 
static  uint32_t timeout_cnt = 1000;   

void Delayms(uint32_t ms){

    TimeingDelay = ms;
    while(TimeingDelay != 0){};
}

void uart_recv_data(uint8_t *p, uint16_t len){

    UART_ApiStructure.send_str(p, len);
}

extern void SX1276Init( void );
extern void SX1276SetTxPacket( const void *buffer, uint16_t size );
extern uint32_t SX1276Process( void );

static uint16_t BufferSize = 30;            // RF buffer size
static uint8_t  Buffer[
  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值