Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
easyflash
SPI
STM32H750VB
关于在H750VBT6开发板上使用片外SPI_FLASH的总结
发布于 2021-03-04 10:15:47 浏览:3401
订阅该版
开发板: STM32H750VBT6通用开发板 开发环境: RT-Thread Studio + Cubemx 参考SDK: Art-Pi 首先是在board.h修改配置,使能SPI1  然后在cubemx中配置好使用的IO口,然后复制HAL初始化代码到board.c文件中 包括两个函数 一个是:void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) 另一个是:void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)   然后到stm32h7xx_hal_conf.h文件中修改宏定义,使能spi模块  完成后,保存所有修改,然后编译一次。看看有没有错误。  好极了,没有错误。可以下载到板子上,通过终端查看设备list_device,并没有发现SPI设备  这里缺少了一步,需要到rtthread settings中选中“spi组件”,这里使用“sfud”来驱动SPI_FLASH   保存退出,然后再编译一次,没有错误  下载到开发板,然后再次查看设备,list_device可以看到spi1已经正常注册到设备列表中了  接下来要写一个spi_flash_sample.c来驱动spi_flash,通过注册一个终端调试命令来注册spi_flash。  编译通过,下载到开发板上,并执行一次刚才注册的终端调试命令。看到成功驱动。  再次打印设备列表,可以看到添加了spi10和W25Q64  至此完成基本的驱动,并且验证了板子上的SPI_FLASH状态是正常的,那么接下来就要看看如何来实现更高级的控制。 接下来使用fal软件包,来实现对SPI_FLASH的逻辑分区,方便管理存储空间。 打开rtthread settings,配置使用fal软件包,如下图所示:  保存退出,并编译,会出错,提示找不到文件fal_cfg.h文件,不要急,我们在app目录下新建一个fal_cfg.h文件即可,文件内容如下:  有了这个文件之后再次编译通过。那么接下来就是如何来使用这个软件包了。 需要在app目录下,新建一个drv_spi_flash.c的文件,用来初始化spi_flash硬件,并注册到设备上,然后调用fal的初始化函数来初始化逻辑空间。  保存退出,然后编译通过,下载到板子上,然后查看终端打印口的打印信息 可以看到fal初始化成功的打印信息  上述分区表对应于前面fal_cfg.h文件中规划的分区表。 完成了fal分区之后,我们将使用easyflash软件包,因为在fal的逻辑分区中划定了一个逻辑分区名字为easyflash,这个分区就是给这个软件包使用的,这个软件包的功能在于让我们可以方便的存储和读取一些环境变量。 打开rtthread settings,勾选easyflash软件包并进行配置,如下图所示  保存退出,然后编译一次,看看有没有错误。看到很多错误信息,不用紧张,这里面又是缺少了必要的文件。Easyflash有两种驱动方式,一种是基于sfud,一种是基于fal。Sfud是直接在flash使用easyflash,fal是在某个逻辑分区上使用easyflash。  这里我们使用的是基于fal的驱动,所以要添加文件ef_fal_port.c。该文件位于软件包的目录下,ports目录内。我们将文件拷贝到软件包目录下的src目录内即可。  再次编译就可以通过了  这里还需要修改一个地方,就是el_fal_port,c文件中,宏定义了逻辑分区的名称为“ef”,这里要修改成“easyflash”,对应于前面的fal初始化中的分区表。  至此,就完成了fal和easyflash的移植。接下来验证一下easyflash功能是否正常。 我们先在ef_fal_port.c文件中创建一个新的环境变量boot_times,如下图所示:  然后在app目录下创建一个文件,名为easyflash_sample.c的文件来编写测试代码  然后在终端中敲入调试命令,就可以得到结果  至此,关于spi_flash的移植就算是完成了。
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
adaphoto
这家伙很懒,什么也没写!
文章
25
回答
44
被采纳
5
关注TA
发私信
相关文章
1
BBB的SPI驱动
2
求个SPI上挂两个或多个设备的使用例子
3
SPI设备有个bug
4
spi flash 的fatfs使用一段时间后读写文件出现故障
5
SPI驱动
6
请教rt_spi_configure函数理解
7
SPI FLASH挂载的问题
8
SPI-FLASH 文件系统 SPIFFS
9
求助一个完整的 spi flash 驱动
10
关于同时使用文件系统与SPI FLASH的问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
ESP8266
UART
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
GD32
定时器
ADC
flashDB
编译报错
socket
中断
rt_mq_消息队列_msg_queue
Debug
keil_MDK
SFUD
msh
ulog
C++_cpp
MicroPython
本月问答贡献
张世争
1
个答案
2
次被采纳
crystal266
4
个答案
1
次被采纳
lchnu
3
个答案
1
次被采纳
JonasWen
2
个答案
1
次被采纳
聚散无由
2
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
3
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部