LORA驱动移植
移植前先唠嗑唠嗑:
在网上买了几块LORA-B1的开发板,开发板的LORA芯片用的是SX1278,微控制器是STM32F030F4P6,我这人底子薄没怎么用过STM32也没用过LORA,就玩过ZigBee用过IAR,所以就一边百度一边学STM32CubeMX和Keil5 MDK的基本使用。点了点灯再跑下例程的按钮点灯,不亦乐乎。
然后到移植LORA驱动这里时,犯难了,碰到了很多问题,虽然有现成移植好LORA驱动的例程,但我就是想自己试一试。店家给的教程对我这种菜鸡太不友好了,我脑抽没看懂,问到店家都怕了我吧?(学习的过程中脸皮一定要厚,嗯嗯~)鼓捣一两天终于弄出来了,还做了个笔记跟大家分享一下。这教程应该是非常适合像我这样一脸懵逼一无所知的小白了。
附上参考教程链接:
http://www.eemaker.com/lora-b1-qudongyizhi.html
下面就是我用的LORA-B1开发板:
(我这算是帮别人打广告吗?不过这篇文章估计看的人也不多)
一、移植官方LORA驱动前需知:
1.DIO0-DIO3为lora模块的输出引脚,连接的单片机引脚需要对应配置为输入模式进行检测。
2.SPI_MOSI、SPI_MISO、SPI_SCK、CS脚为lora模块和stm32之间的spi接口引脚。
3.L_RST是lora模块的复位引脚,对应stm32的IO口要配置为输出模式。
二、移植步骤:
1.打开STM32CubeMX,选择ACCESS TO MCU SELECTOR
2.搜索自己的芯片型号,双击
3.按照上述原理图配置各管脚
①DIO0-DIO3为GPIO_INPUT模式
②SPI1_CS和LRST配置为GPIO_OUTPUT模式(注意CS脚这里是作为普通输出)
③SPI1_MOSI、SPI1_MISO、SPI1_CLK为标准SPI接口。
④然后再对相应管脚进行命名和SPI管脚设置:展开System Core,双击GPIO,在User Label处改标签名(注意:PB1管脚标签改为LRST,不是L_RST)
⑤展开Connectivity,点击SPI1,选择Full-Duplex Master模式(全双工主机),在Parameter Settings里将Data Size设为8 Bits,Prescaler(for Baud Rate)设为4,(注:灰色部分的Baud Rate与设置的Prescaler(for Baud Rate)和STM32的主时钟频率有关,下一步设置STM32的主时钟频率)其他参数默认不变,如图所示:
4.设置STM32的主时钟频率为48MHz
此时的SPI1参数如下:
5.在Project Manager的Project里,自行命名项目名称和设置项目路径,Toolchain/IDE选择MDK-ARM V5。
6.勾选,这个选项使每个外设对应产生一个.c和.h文件,让代码结构更加清晰。
7.点击GENERATE CODE
再点击Open Project自动生成工程。
自动生成的工程如下:
先关闭工程,下一步是代码移植。
三、代码移植
1.解压官方源码
解压后在src下找到并复制platform和radio文件夹
再找到自动生成的工程路径
在自动生成的工程下,新建一个命名为lora的文件夹,在lora下黏贴platform和radio文件夹