物联网国赛LORA模块开发教程(通用库)——LoRa点对点通信_lora无线通信技术点对点csdn

void Init()
{
BoardInitMcu();
BoardInitPeriph();
keys_init(); //按键初始化
OLED_Init(); //OLED初始化
setTimer2Callback(Time2Handler);
Tim2McuInit(1); //定时器初始化,设置定时中断1ms中断一次

NS_RadioInit( 433300110, 16, 1000 ,1000);      //LORA模块初始化     

}

//通用库里面讲解的很详细
/**********************************************************************************************
*函数:void NS_RadioInit( uint32_t freq, int8_t power, uint32_t txTimeout, uint32_t rxTimeout)
*功能:对射频模块发送、接收参数进行初始化
*输入:

  •   	freq载波频率,建议433MHz附近频率最佳
    
  •   	power发射功率,最大20
    
  •   	txTimeout发送超时时间
    
  •   	uint32_t rxTimeout 接收超时时间
    

*输出:无
*特殊说明:无
**********************************************************************************************/
void NS_RadioInit( uint32_t freq, int8_t power, uint32_t txTimeout, uint32_t rxTimeout)
{
NS_RadioEventsInit();//无线射频模块注册事件回调函数
NS_RadioSetTxRxConfig( freq, power, txTimeout );
Radio.Rx( rxTimeout );//设置LoRa模块为接收模式,同时设置超时时间,必许步骤
}


### 三、代码实现


#### 1、发送端



//发送光照值【发送端】
uint16_t gz_val=0; //ADC的值,需为整形或浮点型,字符型会导致数据上限
uint8_t lora_send_data[3]; //无线接收数据的数组,数组长度任意,不超过255即可
uint8_t oled_data[10]; //OLED屏幕数据的数组,数组长度任意,不超过255即可
void send(void) //发送函数
{
AdcScanChannel(); //查询ADC
gz_val=AdcReadCh0()250; //读取ADC通道0函数读取到电压值并250进行转化得到光照值赋给gz_val
sprintf((char*)lora_send_data,“%d”,gz_val); //对无线发送数据的数组进行处理
SX1276Send(lora_send_data,3); //无线发送数据SX1276Send(发送内容,字节数)
sprintf((char*)oled_data,"%d ",gz_val); //lx后需加两个空格(lx为光照强度的单位),否则屏幕不会清除原先显示的数据
OLED_ShowString(0,0,oled_data); //显示OLED屏幕数据
GpioToggle(&Led1); //通讯指示灯
}


#### 2、节点端


**【补充】**


**该函数的格式为 :int atoi(const char\* str)**


**atoi()函数将数字格式的字符串转换为整数类型。例如,将字符串“12345”转换成数字12345。**



//接收光照值【节点端】
uint8_t lora_recieve_data[255]; //无线接收数据的数组,数组长度必须为255
uint8_t oled_data[10]; //OLED屏幕数据的数组,数组长度任意,不超过255即可
uint16_t gz_val=0; //无线数据的值,需为整形或浮点型,字符型会导致数据上限
void receive() //接收函数
{
ReadRadioRxBuffer( (uint8_t *)lora_recieve_data); //无线接收数据
gz_val=atoi((const char *)lora_recieve_data); //将无线数据字符串转换为整形

sprintf((char*)oled_data,"%d lx  ",gz_val);    //格式化OLED屏幕数据,lx为光照强度的单位
OLED_ShowString(0,0,oled_data);                      //显示OLED屏幕数据
if(gz_val<100)                                       //判断无线数据的值
{
	GpioWrite(&Led2,0);
}
if(gz_val>100)                                      //判断无线数据的值
{
	GpioWrite(&Led2,1);
}
GpioToggle(&Led1);                           //通讯指示灯
memset(lora_recieve_data, 0, 255);           //清空(数组)无线数据,不清空则数据会溢出  

}


【注意】发送端和节点段尽量发送字符,到节点端进行转换,减少出错!!!


### 四、【特别注意】


**发送端LoRa板和节点端LoRa板一定要装天线!!!**


**发送端LoRa板和节点端LoRa板一定要装天线!!!**
## 最后

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**

**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/ff06deaad930ec306b8f7040adaaddda.png)

![img](https://img-blog.csdnimg.cn/img_convert/89f051bca886ff2751b0cdcf14160283.jpeg)

![img](https://img-blog.csdnimg.cn/img_convert/910e8fdfcdc61d51eec887ab67ec53da.png)

 ![img](https://img-blog.csdnimg.cn/img_convert/1cc732ac9edc06fa0fee07ba7385acc0.png)

![img](https://img-blog.csdnimg.cn/img_convert/8ed7c08859735c062126dff7e70265b3.png)

![img](https://img-blog.csdnimg.cn/img_convert/2513e3be51f5b86cd0532c33ddc84984.png)

![](https://img-blog.csdnimg.cn/img_convert/3f6787d9137475bea42dfc3c371b04e7.png)

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!


料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!


  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值