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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9297|回复: 10

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

[复制链接]
发表于 2019-1-3 04:49 | 显示全部楼层 |阅读模式
本帖最后由 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烧录文件): sdreader-f103c8.rar (18.13 KB, 下载次数: 106)

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


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


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


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


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


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

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

发表于 2019-1-3 05:59 | 显示全部楼层
终于看到有人用Arduio+stm32玩USB了
顶!
发表于 2019-1-3 09:14 | 显示全部楼层
STM32核心的Arduino可以看看零知,新的板子不仅与USB接口,还有专门的LCD接口、摄像头接口、SD接口等等
http://www.lingzhilab.com/forum. ... &extra=page%3D1
 楼主| 发表于 2019-1-3 12:02 | 显示全部楼层
wwwusr 发表于 2019-1-3 05:59
终于看到有人用Arduio+stm32玩USB了
顶!

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

最近用 Maple 的库玩 Arduino_STM32,发现移植的很好
 楼主| 发表于 2019-1-3 12:06 | 显示全部楼层
零知实验室-roc 发表于 2019-1-3 09:14
STM32核心的Arduino可以看看零知,新的板子不仅与USB接口,还有专门的LCD接口、摄像头接口、SD接口等等
htt ...

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

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

BOOT0/1 怎么处理的?支持外部强制修改不?如果我要 SRAM 跑程序,这板子支持不?
再多的客服,都不如一张原理图解释的清楚。
 楼主| 发表于 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 读卡器。

IMG_0333.JPG
发表于 2019-1-19 09:46 来自手机 | 显示全部楼层
t3486784401 发表于 2019-1-3 12:02
之前把玩 STM32 是因为入手了玩具示波器 DSO130,在 KEIL 下天天纠结版本不匹配....

最近用 Maple 的库 ...

maple的库怎么用啊?我用官网的,其他都好,就是20脚12864一直驱动不起来
 楼主| 发表于 2019-1-19 13:40 | 显示全部楼层
xbdl2dz 发表于 2019-1-19 09:46
maple的库怎么用啊?我用官网的,其他都好,就是20脚12864一直驱动不起来

转自 amobbs 的论坛:原帖

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

2019-01-19_133757.PNG
发表于 2019-2-16 20:49 | 显示全部楼层
学习了,回头试试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 01:50 , Processed in 0.180825 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表