标题:
Lora sx1262测试源码,基于stm32f103c8t6单片机
[打印本页]
作者:
harry1994
时间:
2019-5-29 10:44
标题:
Lora sx1262测试源码,基于stm32f103c8t6单片机
Lora sx1262测试源码,基于stm32f103c8t6,按照程序接口定义接线,下载程序进去即可进行无线数据收发
单片机源程序如下:
/**********************(C) COPYRIGHT tongxinmao.com*****************************
* 文件名 : main.c
* 描述 : 主文件 STM32F103C8T6+RF(SI443 SI4463 SX1278扩频)+OLED+串口+按键+温湿度传感器
* 历史记录 : 暂无
* 使用说明 :按键S1 短按切换无线是否应答,长按清空收发计数 S2:单次发送 S3:连续发送50*n次
发送的数据为温湿度数据,接收方收到后显示
********************************************************************************/
/*--------------------------- 头文件包含 --------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "main.h"
#include "function.h"
#include "oled.h"
#include "usart1.h"
#include "gpio.h"
#include "Delay.h"
#include "sx1262.h"
#include "rf.h"
/*-----------------------------------------------------------------------------*/
/*
* #pragma diag_suppress 77,550,1294,1295
* #pragma diag_suppress 870
*/
#pragma diag_suppress 870
/*
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* -------------------- 宏定义 ------------------------------
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
*/
#define CMD_TEMP_HUM 1
#define CMD_ACK 2
/*
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* -------------------- 变量定义 ------------------------------
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
*/
/*
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* -------------------- 函数声明 ------------------------------
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
*/
void frameProcess( u8 *buf, u8 size )
{
u8 cmd = buf[0];
u8 len = buf[1];
switch ( cmd )
{
case CMD_TEMP_HUM:
if ( rfAck )
{
sendBuf[0] = CMD_ACK;
sendBuf[1] = 0;
RFSendData( sendBuf, 2 );
msg( "回复应答..." );
}
/* 显示温湿度数据 */
if ( len == 4 )
{
memcpy( &temp, buf + 2, 2 );
memcpy( &hum, buf + 4, 2 );
msg( "收到温湿度数据" );
}
break;
case CMD_ACK:
/* 屏幕显示应答成功 */
msg( "收到应答" );
break;
default:
break;
}
}
/**************************************************************
* 函数名 : main()
* 描述 : 主函数
*************************************************************/
int main( void )
{
/* --配置系统主频为72MHz */
SystemInit();
Delay_InitConfig( 72 );
GPIOInit(); //GPIO初始化
OLED_Init(); //OLED初始化
Uart1Init(); //串口初始化用于输出调试信息 9600bps 8N1
printf("SX1262-SMT RF TEST \r\n");
RFInit(); //射频模块初始化
//RFRxMode(); //进入接收模式
msg( "system start" );
getTempHum(); //获取温湿度数据
while ( 1 )
{
int len;
keyProcess(); //按键检测处理
//led_blink(); //led运行灯闪烁
len = RFRevData( revBuf ); //接收无线数据
if ( len > 0 )
{
frameProcess( revBuf, len ); //数据处理
}
if(rfContinueSend())
{
if(Sx1262_Flag.RFCtrl.SpreadingFactor <= SF7)
Delay_ms( 500 );
else if(Sx1262_Flag.RFCtrl.SpreadingFactor <= SF9)
Delay_ms( 1000 );
else
Delay_ms( 6000 );
}
OledDisplay(); //刷新OLED显示
}
}
/*
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* -------------------- 公有函数定义 ------------------------------
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
*/
/* end of main.c -------------------------------------------------------------*/
复制代码
所有资料51hei提供下载:
STM32_SX1262.7z
(204.37 KB, 下载次数: 341)
2019-5-29 18:07 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
一只好男孩儿
时间:
2019-6-12 18:01
请问sx1678和sx1262的开发大吗
作者:
mmy1219
时间:
2019-6-20 16:47
这么好的资料怎么没人顶啊???
作者:
sswfcsf
时间:
2019-6-24 11:35
目前还是穷光蛋,没有黑币来下载,还是要顶一下!
作者:
xiaokancheng
时间:
2019-7-9 16:25
已收藏,顶一顶
作者:
aimripeky
时间:
2019-7-13 10:07
太好了 有用
作者:
qq2369603389
时间:
2019-7-22 19:48
很想下载回来看看,可惜分不够用,唉愁啊
作者:
784104920
时间:
2019-8-6 09:56
楼主有电路图吗
作者:
@guo
时间:
2019-9-29 11:04
楼主用的1262驱动是在官网下载的吗
作者:
leo2002zhang
时间:
2019-10-10 16:08
谢谢楼主,正在写sx1268的程序。
作者:
sbsbso
时间:
2020-2-2 18:39
多谢 ,学习了
作者:
yiwen_yang
时间:
2020-2-10 12:55
楼主威武,谢谢楼主
作者:
jiajia86
时间:
2020-3-9 14:42
学习一下lora,谢谢分享
作者:
iam00000000
时间:
2020-3-20 11:31
学习一下,感谢楼主分享
作者:
leo2002zhang
时间:
2020-3-28 12:26
谢谢楼主。
作者:
byte
时间:
2020-3-28 19:01
为什么我总是在busy引脚这里循环???不知道楼主有没有遇到这种情况,就算是把PB2引脚拉低都不能正常检测到。
如下循环:
void check_busy(void)
{
Sx1262_Flag.busy_timeout_cnt = 0;
Sx1262_Flag.busy_timeout = 0;
while(RF_BUSY())
{
if(Sx1262_Flag.busy_timeout)
{
SetStandby(0);//0:STDBY_RC; 1:STDBY_XOSC
reset_sx1262(); //reset RF
sx1262_Config();
Rx_Init();
break;
}
}
}
复制代码
作者:
zero1118
时间:
2020-3-30 16:19
非常感谢。正好要用sx1262
作者:
cjp88811283
时间:
2020-4-20 12:21
楼主用的1262驱动是在官网下载的吗?
作者:
q294877228
时间:
2020-10-14 22:54
为什么我用你的历程发送数据,DIO1没有发生中断。发送数据应该会有发送完成中断的呀,请问下会是什么原因?
读寄存器可以判断是正常的
怎么判断读写命令是否正常?
作者:
lp667257
时间:
2021-7-13 16:49
q294877228 发表于 2020-10-14 22:54
为什么我用你的历程发送数据,DIO1没有发生中断。发送数据应该会有发送完成中断的呀,请问下会是什么原因? ...
我也是一样的问题!你解决了吗?
作者:
dcc024
时间:
2022-5-3 08:51
不知道有用没用,先顶一下
作者:
jach09
时间:
2022-12-13 19:50
程序编译通过,明天找一个板子烧写测试一下。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1