keil5+正点原子stm32f103战舰开发板+硬件spi+ flash w25q128+easyflash移植到自己的裸机程序

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:21   2248   0

keil5+正点原子stm32f103战舰开发板+硬件spi+ flash w25q128+easyflash移植到自己的裸机程序

https://github.com/armink/EasyFlash/archive/master.zip点击这个地址 下载EasyFlash-master.zip 解压后打开里面的EasyFlash-master\demo\env\stm32f10x\non_os_spi_flash\RVMDK这个文件夹可以看到工程文件 双击点开

里其实按照官方的说明修改基本没什么问题 写这个记录只是方便以后使用时修改

官方例程直接编译后没什么问题 但是需要注意的是这里使用的spi1 使能引脚使用的和自己的开发板也不一定一样所以需要修改这个地方

首先在sfud里面的sfud_port.c中添加SPI2和GPIIOB的时钟

然后在下面这里添加你的spi flash芯片使用的引脚 除了spi2用到的引脚外也根基自己的开发板的情况把使能脚放进去

下面把使用的引脚赋值给结构体中去 可以对照左面行数去找

这个时候再编译成功后就可以测试一下了在mian函数下面官方写了一个测试函数 可以直接使用 我这里稍加修改 因为要存储的一条数据太长所以将原本的ef_set_env函数改为ef_set_env_blob这里可以参照https://github.com/armink/EasyFlash/blob/master/docs/zh/api.md这里的说明

当然例程里规定数据库的大小是最小的空间 我们要根据自己的flash的大小进行修改在sf_cfg.h里

我的flash是16m的我只给了12m的大小 这样再进行测试就可以了 本来到这里就基本结束了 但是当我把这个程序移植到我的工程中去一直出现一个很奇怪的问题一直报这个错误: expected an expression就很奇怪而且错误就在ef_env.c和ef_port.c里面 而且显示错误的语句本身也没什么问题 c99也勾选上了 设置里面所有的设置都按照例程里的设置改了一遍都不行 最后我一个个文件的查看最后发现有两个地方出了问题首先

这里面圈住的四个文件是在这个目录下的EasyFlash-master\easyflash\src而最后那个文件在工程中导入的是另一个目录下的EasyFlash-master\demo\env\stm32f10x\non_os_spi_flash\components\easyflash\port这我上哪知道去

另一个问题就是在这个文件中和跑通的例程里的不一样我就Ctrl+A,Ctrl+C,Ctrl+A,Ctrl+V

把这个文件中的代码全粘过去 发现竟然好了 可喜可贺

最后不要少了添加库文件就ok了

自己的源码程序https://download.csdn.net/download/acliujinpeng/13196027 互相交流 在这个程序里我添加了串口 led 按键功能 具体按键什么测试功能可以自己看吧挺简单的

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP