2755|0

13

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

stm32f769i评测之读卡器 [复制链接]

本帖最后由 zhongyuan186118 于 2016-12-17 10:19 编辑

   折腾了几天,今天我们就用开发板做一个读卡器。说起读卡器,我们并不陌生,几年前这个东西还在大量的使用,现在可能用的少了。我们需要准备一个SD卡,一条手机数据线,还有就是我们的开发板啦。其实要完成读卡器功能,主要就是SD卡的读写和USB大容量存储设备类方面的知识。关于USB方面的知识,还是比较复杂的,但是借助于STMCubeMx,我们还是能够轻松的完成USB方面的功能,再加上ST提供的官方库和相关例程,大大减少了开发者的工作量,今天我们就使用STMCubeMx来完成读卡器的功能。
  我们首先要熟悉一下这个开发板的SD卡电路和USB电路,了解SD卡的读写方式和USB的类型(FS or HS)。

SD卡一般有SPI读写模式和SDMMC模式,区分属于哪一种模式也很简单,直接通过电路图来看。采用SPI模式则是使用SPI接口与SD卡进行通信,一般是单线的数据传输。采用SDMMC模式,则允许四线的数据传输,这个开发板就是采用四线的数据传输,通过SDMMC模式与SD卡进行通信,相比于SPI模式,速度快了不少,毕竟采用四根数据线传输。至于USB,它的PHY芯片是OTG HS类型的,即在使用时,我们采用高速的USB模式。了解完这些基本知识后,我们就着手新建CubeMx工程。
  打开STMCubeMx,双击"New Project",选择相应的参数,如下图所示



一般选择HSE时钟,HSE时钟有两种方式,通过手册可以了解到这两种种方式的区别,在手册的125页我们可以看到这张图,

其中BYPASS Clock Source就是上图中的外部时钟,Crystal/Ceramic Resonator就是晶振陶瓷谐振器,要根据电路图来决定使用哪一种方式。

通过电路图可知, 开发板使用了25M的外部时钟,直接看PH0-OSC_IN和PH1-OSC_OUT的接口接法与手册上的HSE时钟源对比便可知晓。

根据电路图,SDMMC模式选择4位的模式。

选择USB_OTG_HS模式,根据开发板上的电路图可知。

  以上便是所有的配置了,其他的全部选择默认即可。从此处便可以看出使用CubeMx的方便之处了,图形化的配置工具确实让我们的编程工作变得简单起来了,同时也不容易出现错误。配置完成之后,点击生成工程文件,打开工程文件,我们只需要修改usbd_storage_if.c和sdmmc.c的程序即可。sdmmc.c用来完成SD卡的初始化和读写操作,usbd_storage_if.c为应用层文件,里面为USB大容量存储设备类底层操作,包括获取存储器容量,快读写等操作,这里面的操作都是空的,需要我们移植底层。参考官方提供的例程,底层的移植相对来说还是比较容易的。
  sdmmc.c文件中我们只需要移植SD卡的读写即可,初始化已经使用CubeMx配置好了,在sdmmc.h中定义SD卡读写的函数和变量。




以上就是SD卡的读写函数。
  usbd_storage_if.c文件只需要移植三个函数即可,

该函数为获取SD卡容量的大小,这里为了方便,并没有检测SD卡是否插入,官方例程是有这个步骤的,所以就把这句话注释掉了。


至此。所有的移植工作均已完成,编译完成之后,生成HEX文件,下载到开发板中,最终看到如下的结果

可移动磁盘I就是被识别的SD卡,由此可见,借助于STMCUbeMx和官方提供的例程我们可以很容易完成一些复杂的功能,大大减少开发者的工作量。最好附上工程文件,文件中我移植了其他的功能,比如采用DMA传输数据,但并没有使用,本例中使用轮询方式传输数据。




点击此处,查看STM32F769I开发板官方资源。

QQ截图20161216224914.png (89.37 KB, 下载次数: 0)

QQ截图20161216224914.png

stm32f769_usbd.rar

12.84 MB, 下载次数: 44

此帖出自stm32/stm8论坛
点赞 关注(1)
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表