开发环境搭建及驱动移植 2

1 开发环境搭建

前言:

STD库-标准外设库 寄存器操作,将一些基本的寄存器操作封装成函数 

HAL库-硬件抽象库将这些抽象成了一个抽象层,从使用的角度来看,是与硬件无关的 

HAL库优势HAL库是ST未来主推的库,从2015开始ST新出的芯片已经没有STD库HAL库的处理机制比STD库好很多,HAL库支持STM32全线产品HAL库跨芯片的可移植性非常好

1.1 STM32cubmx安装及使用

1.2 IAR安装及使用

右键以管理员身份运行 再选择第二项 install

破解

参考Iar for STM8/for msp340/for 8051/Iar for arm 等各种版本安装 破 解过程 - 哔哩哔哩

IAR与Keil区别:

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

IAR常用快捷键

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

2 M0工程建立

2.1 原理图

2.2  建立IO功能映射表

2.3 cubmx配置

系统时钟

选择时钟源  hse
配置倍频  6
使能锁相环配置系统主时钟为48M

usart1:方便调试

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

spi:lora和lcd总线都是通过spi驱动 

选择全双工主机模式
硬件片选不使能 lcd和lora用的1个spi,选了会只能驱动一个设备
设置波特率为1.5MBit/s
时钟极性为低电平驱动时钟
相位为第一个边沿

3 Lora固件库介绍

3.1 官方网址:

LoRa Connect Transceiver, SX1278, 137MHz to 525MHz | Semtech

3.2 数据手册:

1276\1277\1278都是一样的手册(我们使用的是1278,美国用的是1276)

3.3 驱动源码文件结构:

src分析:

其中platform(指硬件平台的驱动源码,不同mcu,如m3、m4)

先只关心下面4个文件

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

驱动框架分类

sx1276-Hal.c

3.4 硬件接口设计

 

4 驱动移植

需要移植哪些驱动源码? 如何把源码添加到IAR工程里? 源码文件我们需要修改吗?

4.1 驱动文件移植

4.2 IAR工程文件添加

打开EWARM,右击添加工作组platfrom和radio

error的原因主要有3个

  • 1官方固件库不支持m0
  • 2不支持hal库
  • 3io口不是和开发板一致

4.3 驱动源码修改

4.3.1 修改硬件平台,把宏定义添加到编译器的设置里面

修改包涵路径

4.3.2 修改sx12xxEiger.c,eiger.h采用m0平台,没有usb

 注释前

注释后

初始化工作hal库都做好了,全部注释掉

4.3.3 修改led.c

时钟有关的和初始化内容不需要,注释掉 

找到else,其他的硬件平台不需要看,改完对应io口,去掉以前的时间去掉库定义,hal库不支持。pin1随便写,不用

writepin函数修改 

 

编译成功 

4.3.4 修改sx1276-Hal.c

没有复位功能

 修改后

注释不需要的 

不要init

不需要reset 

 修改writebuff 和readbuff

 

修改readdio,不需要的dio 3、4、5,不需要硬件修改发送和接收的模式 

 

4.3.5 修改sx1276-hal.h

修改定时器函数 

4.3.6 修改spi.c 

为什么要修改spi接口?这边使用了,但是官方没有提供

读写单字节数据 

编译成功 

4.4 LoRa模块上电自检,验证移植成功 

 

搜索的函数复制到main 

包含硬件平台 

读取硬件平台loraID,printf重定向 

 

执行

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

4IOT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值