开发环境搭建及驱动移植 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重定向 

 

执行

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/587977.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Movavi Video Converter 2022 for Mac/Win:卓越的视频音频文件转换器

在数字化时代,视频和音频文件已成为我们日常生活和工作中不可或缺的一部分。无论是制作精美的家庭影片,还是编辑专业的商业视频,一款高效、便捷的视频音频文件转换器无疑是您的得力助手。而Movavi Video Converter 2022,就是这样一…

Python 与机器学习,在服务器使用过程中,常用的 Linux 命令包括哪些?

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 本博客旨在分享在实际开发过程中,开发者需要了解并熟练运用的 Linux 操作系统常用命令。Linux 作为一种操作系统,与 Windows 或 MacOS 并驾齐驱,尤其在服务器和开发环…

AWTK 开源串口屏开发(15) - 通过 MODBUS 访问远程设备数据

在 AWTK 串口屏中,内置了 MODBUS Client 的模型,支持用 MODBUS 协议从远程设备获取数据。不用编写一行代码即可实现对远程设备数据的显示和修改。 1. 功能 不用编写代码,实现对远程设备数据的显示和修改。 2. 创建项目 从模板创建项目&am…

MATLAB近红外光谱分析技术应用

郁磊副教授,主要从事MATLAB编程、机器学习与数据挖掘、数据可视化和软件开发、生理系统建模与仿真、生物医学信号处理,具有丰富的实战应用经验,主编《MATLAB智能算法30个案例分析》、《MATLAB神经网络43个案例分析》相关著作。已发表多篇高水…

聚观早报 | 蔚来推出油车置换补贴;iPhone 16 Pro细节曝光

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 4月02日消息 蔚来推出油车置换补贴 iPhone 16 Pro细节曝光 小米SU7创始版第二轮追加开售 OpenAI将在日本设立办事…

JeeSite Vue3:前端开发控制实现基于身份角色的权限验证

随着技术的飞速发展,前端开发技术日新月异。在这个背景下,JeeSite Vue3 作为一个基于 Vue3、Vite、Ant-Design-Vue、TypeScript 和 Vue Vben Admin 的前端框架,引起了广泛关注。它凭借其先进的技术栈和丰富的功能模块,为初学者和团…

基于 NGINX 的 ngx_http_geoip2 模块 来禁止国外 IP 访问网站

基于 NGINX 的 ngx_http_geoip2 模块 来禁止国外 IP 访问网站 一、安装 geoip2 扩展依赖 [rootfxkj ~]# yum install libmaxminddb-devel -y二、下载 ngx_http_geoip2_module 模块 [rootfxkj tmp]# git clone https://github.com/leev/ngx_http_geoip2_module.git三、解压模…

android 使用ollvm混淆so

使用到的工具 ndk 21.4.7075529(android studio上下载的)cmake 3.10.2.4988404(android studio上下载的)llvm-9.0.1llvm-mingw-20230130-msvcrt-x86_64.zipPython 3.11.5 环境配置 添加cmake mingw环境变量如下图: 编译 下载…

redis发布订阅模式

需要两个终端。 首先我们打开第一个终端,使用SUBSCRIBE命令来订阅一个频道。 打开另一个终端,发布信息使用PUBLISH,后面加上频道的名称和消息的内容 返回去看第一个终端 订阅频道的终端可以有多个。但是订阅频道有一些局限性,比如…

蓝队面经速查手册

文章目录 常见安全设备+安全产品溯源应急响应+入侵排查思路日志文件日志分析工具安全加固外围打点常用排查命令主机后门webshell的排查思路Webshell工具的流量特征服务器存在 webshell,如何处理?排查 shell 应该用什么命令来进行排…

ubuntu-server部署hive-part2-安装hadoop

参照 https://blog.csdn.net/qq_41946216/article/details/134345137 操作系统版本:ubuntu-server-22.04.3 虚拟机:virtualbox7.0 安装hadoop ​​​​​​下载上传 下载地址 https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/ 以root用…

nodeJs 实现视频的转换(超详细教程)

前段时间拿到一个视频是4k的,没法播放,于是通过 node.js 和 ffmpeg 实现了视频的转换。在win10 系统下实现。 所需工具 node 16.19 直接安装 ffmpeg-5.1.1-essentials_build 解压后重名 ffmpeg 放到C盘 然后配置下环境变量 Git-2.42.0.2-64-bit 直接…