【原创】使用 F103 在 Arduino 下实现 SD 读卡器-Arduino中文社区 - Powered by Discuz! Archiver

t3486784401 发表于 2019-1-3 04:49

【原创】使用 F103 在 Arduino 下实现 SD 读卡器

本帖最后由 t3486784401 于 2019-1-3 04:46 编辑

最近安装了 Arduino_STM32 的支持库,发现现成的代码一堆堆,可以简单搭建不少东西玩玩。
在 F103 的示例当中,找到了一个 sdreader 的例子,把玩一番后真的把 F103C8 改成了读卡器。
以下记录之,供大家分享与指正:

1. 直接在 STM32C8 通用板下编译 .ino 文件,提示 SdFat.h 缺失,目测缺少文件系统库。
    随即在 IDE 里搜索 SdFat 库下载并安装;

2. 再次编译,提示 SdFatEX 类未定义,看 .ino 源代码中提示,需要更改 SdFatConfig.h 当中
    ENABLE_EXTENDED_TRANSFER_CLASS 定义,随即更改为 1.

3. 再次编译相当漫长,居然通过了。使用 STM32 的串口 BOOTLOADER 下载到 F103C8,
    插卡后竟然真的是读卡器(还有一个 Maple 的下载串口),拷贝出首歌来压压惊。速度就不强求了。

让我比较惊讶的是,Arduino 原始设计的库(面向AVR),居然可以在 STM32 的物理底层下完美运行。
看来 Arduino 整体的设计真的是实现了硬件抽象层(HAL),高层库都是在 HAL 上编写的。
以下是附件及截图,各位有 F103C8 核心板的朋友可以试试看,我已在压缩包里导出了 BIN 烧录文件。
另外我的板子SD卡连接为SPI_1口:CS/CK/DO/DI= PA4/PA5/PA6/PA7,规范一点的核心板目测都差不多。

#0. 工程固件(含BIN烧录文件):

#1. IDE 编译界面(红圈示意 Arduino 库与底层顺畅融合):



#2. 运行后的设备管理器(红圈示意 F103 同时模拟出读卡器、MAPLE 下载串口):



#3. 运行后(我的电脑)目录(多出了8GB U盘)



#4. 读取个大文件(速度就别强求了)



#5. STM32F103C8T6 核心板(读卡器)工作状态



以上就是大半夜不睡觉折腾的经历,看来 STM32 真的给 Arduino 带来了新的速度。

搜了下坛子里的帖子,用 AVR 在 Arduino 下实现读卡器的还真没有,速度不够。
单从这个角度来看,F103 这样的 ARM 性能还是可以的,尤其支持 Arduino 真的太棒了,
StmCUBE 啥的玩两天就放弃了,毕竟 STM32 没那么熟,KEIL 各种版本、工程折腾不来。

wwwusr 发表于 2019-1-3 05:59

终于看到有人用Arduio+stm32玩USB了 :lol
顶!

零知实验室-roc 发表于 2019-1-3 09:14

STM32核心的Arduino可以看看零知,新的板子不仅与USB接口,还有专门的LCD接口、摄像头接口、SD接口等等
http://www.lingzhilab.com/forum.php?mod=viewthread&tid=73&extra=page%3D1

t3486784401 发表于 2019-1-3 12:02

wwwusr 发表于 2019-1-3 05:59
终于看到有人用Arduio+stm32玩USB了
顶!

之前把玩 STM32 是因为入手了玩具示波器 DSO130,在 KEIL 下天天纠结版本不匹配....

最近用 Maple 的库玩 Arduino_STM32,发现移植的很好

t3486784401 发表于 2019-1-3 12:06

零知实验室-roc 发表于 2019-1-3 09:14
STM32核心的Arduino可以看看零知,新的板子不仅与USB接口,还有专门的LCD接口、摄像头接口、SD接口等等
htt ...

刚入手一块标准板,待把玩后再来测评。

话说 amobbs 上前辈说的对,可以先申请若干设计专利(虽然电路专利不好申请/维权),
再考虑开放原理图。没个原理真的好多时候用的不明不白的,举例:

BOOT0/1 怎么处理的?支持外部强制修改不?如果我要 SRAM 跑程序,这板子支持不?
再多的客服,都不如一张原理图解释的清楚。

t3486784401 发表于 2019-1-11 00:54

零知实验室-roc 发表于 2019-1-3 09:14
STM32核心的Arduino可以看看零知,新的板子不仅与USB接口,还有专门的LCD接口、摄像头接口、SD接口等等
htt ...

今天试了试贵司的 F103RB 主板,的确可以直接运行该 Mass_Storage 程序。

使用 D10-D13 SPI 口连接 SD 大卡接口板(正好试试大卡对小卡的兼容性),
直接烧录原贴中编译的 F103C8 固件(目测 F103 系列寄存器地址一致,固件兼容),
然后运行之:真的也实现了 SD 读卡器。


xbdl2dz 发表于 2019-1-19 09:46

t3486784401 发表于 2019-1-3 12:02
之前把玩 STM32 是因为入手了玩具示波器 DSO130,在 KEIL 下天天纠结版本不匹配....

最近用 Maple 的库 ...

maple的库怎么用啊?我用官网的,其他都好,就是20脚12864一直驱动不起来

t3486784401 发表于 2019-1-19 13:40

xbdl2dz 发表于 2019-1-19 09:46
maple的库怎么用啊?我用官网的,其他都好,就是20脚12864一直驱动不起来

转自 amobbs 的论坛:原帖

我把主要软件安装流程贴了过来:


yy800119 发表于 2019-2-16 20:49

学习了,回头试试

chenzhaohui 发表于 2019-9-6 13:14

本帖最后由 chenzhaohui 于 2019-9-6 14:09 编辑

谢谢。。。。
页: [1] 2
查看完整版本: 【原创】使用 F103 在 Arduino 下实现 SD 读卡器