物联网低功耗广域网LoRa开发(二):LoRa开发环境搭建及驱动移植

一、STM32CubeMX加载固件库

将F0固件库添加进来

二、IAR介绍、安装及快捷操作

(一)IAR介绍

1、简介

c 复制代码
·C/C++编译器和调试器
·集成开发环境(IDE)
·实时操作系统和中间件
·开发套件
·硬件仿真器以及状态机建模工具

2、IAR与Keil对比

c 复制代码
·MDK默认只创建工程,工作区是不会直接创建。如果想多个工程聚合,则首先需要创建一个工作区,然后再添加相应的工程。  
·IAR默认是创建工程和工作区,如果想多个工程并存,直接添加即可。
·MDK编译时,只有level的选择;IAR有debug和Release的快速选择。
·默认状态,MDK的工具栏功能比较多,有点繁杂;IAM的比较简洁,但相对,也比较单薄。
·MDK的程序文件,最后必须要有一个新的空行,否则会有编译警告。

(二)IAR安装

c 复制代码
通过百度网盘分享的文件:IAR-ARM 7.80.zip
链接:https://pan.baidu.com/s/1mJdwIhej1dZdBRQtU_VYng?pwd=vwqc 
提取码:vwqc

(三)IAR快捷操作

c 复制代码
CTRL+B 括号匹配 选择括号内的多行代码; 
CTRL+T 自动缩进,格式化选中代码 
CTRL+K 快注释,屏蔽选中的代码
CTRL+SHIFT+K 取消快注释,取消屏蔽选中的代码

三、M0工程建立

(一)IO端口配置

c 复制代码
看懂原理图
建立IO功能映射表
通过STM32Cubemx配置IO工作模式

(二)时钟配置

c 复制代码
选择时钟源
配置倍频
使能锁相环配置系统主时钟为48M

(三)外设配置

1、USART

c 复制代码
选择异步通信
无硬件流控
设置波特率115200
设置DMA接收

2、SPI

c 复制代码
选择全双工主机模式
硬件片选不使能
设置波特率为1.5MBit/s
时钟极性为低电平驱动
时钟相位为第一个边沿

(四)Printf函数重定向

c 复制代码
#include <stdio.h>
int fputc(int ch, FILE *f) 
{
	while((USART1->ISR & 0X40)==0);
	USART1->TDR = (uint8_t)ch;
	return ch;
}

四、LoRa驱动源码分析

(一)驱动源码文件说明

1、驱动源码文件结构

2、SRC目录

3、 Platform目录

c 复制代码
·包含几个不同的硬件平台的源码
·sx12xxEiger是操作 LoRa 芯片相关的接口platform.h 中包含驱动库的配置选项

4、Radio目录说明

c 复制代码
·包含几个不同的硬件平台的源码
·只需要关心Sx1276相关源码即可

5、驱动框架

(二)硬件抽象层分析

1、硬件接口设计

c 复制代码
·数字IO
·SPI串行总线
·硬件复位

2、硬件接口函数


五、LoRa驱动移植

(一)驱动文件移植

c 复制代码
复制粘贴一份M0Project,改名为LoRa。
在其目录下新建一个Sx1278文件。
将sx12xxdrivers-v2.1.0/src文件下的radio、platform复制到LoRa/Sx1278下。

(二)IAR工程文件添加

c 复制代码
在IAR Embedded Workbench软件中的工程下添加.c文件

(三)驱动源码修改 !!重点难点,反复看

1、修改硬件平台


2、修改包涵路径

3、修改sx12xxEiger.c

4、修改led.c


5、修改sx1276-Hal.c





6、修改spi.c

7、修改sx1276-Hal.h

(四)LoRa模块上电自检

c 复制代码
上电通过SPI总线读取芯片版本
判断读取值是否为0x12,并打印模块版本号
相关推荐
中科岩创12 分钟前
某地公园桥梁自动化监测服务项目
大数据·人工智能·物联网·自动化
Hy行者勇哥18 分钟前
物联网工控一体机操作系统选型:安卓、Ubuntu、Debian 场景化决策指南
android·物联网·ubuntu
北京耐用通信3 小时前
冶金车间“迷雾”重重?耐达讯自动化Profibus转光纤为HMI点亮“透视眼”!
人工智能·物联网·网络协议·网络安全·自动化
北京耐用通信4 小时前
耐达讯自动化Profibus光纤模块:智能仪表的“生命线”,极端环境通信无忧!
人工智能·物联网·网络协议·自动化·信息与通信
兆龙电子单片机设计4 小时前
【STM32项目开源】STM32单片机物联网门禁控制系统
stm32·单片机·物联网·开源·自动化
塔能物联运维5 小时前
物联网运维中的自适应DNS解析优化与动态负载均衡技术
运维·物联网·负载均衡
无垠的广袤7 小时前
【CPKCOR-RA8D1】Home Assistant 物联网 ADC 电压温度计
嵌入式硬件·物联网·智能家居·瑞萨
飞睿科技21 小时前
【IoT开发选型】乐鑫ESP32-C6核心优势解析:为何它在无线连接中表现如此全面?
嵌入式硬件·物联网
门思科技1 天前
LoRa 与 LoRaWAN 技术解析:物理层原理、网络架构与典型物联网应用场景
网络·物联网·架构
Web3_Daisy1 天前
如何在市场波动中稳步推进代币发行
大数据·人工智能·物联网·web3·区块链