用户工具

站点工具


icore3_arm_hal_16

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
icore3_arm_hal_16 [2020/03/31 15:30]
zgf
icore3_arm_hal_16 [2022/03/18 15:07] (当前版本)
sean
行 2: 行 2:
 |技术支持电话|**0379-69926675-801**||| |技术支持电话|**0379-69926675-801**|||
 |技术支持邮件|Gingko@vip.163.com||| |技术支持邮件|Gingko@vip.163.com|||
-|技术论坛|http://​www.eeschool.org||| 
 ^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^ ^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^
 |  V1.0  |  2020-03-31 ​ |  gingko ​ |  初次建立 ​ |  |  V1.0  |  2020-03-31 ​ |  gingko ​ |  初次建立 ​ | 
- +\\
 ===== STM32CubeMX教程十六——SDIO实验 ===== ===== STM32CubeMX教程十六——SDIO实验 =====
 1. 在主界面选择File-->​New Project ​  ​或者直接点击ACCEE TO MCU SELECTOR  ​ 1. 在主界面选择File-->​New Project ​  ​或者直接点击ACCEE TO MCU SELECTOR  ​
行 61: 行 59:
   - 掌握KEIL ​ MDK集成开发环境使用方法。   - 掌握KEIL ​ MDK集成开发环境使用方法。
 ==== 二、 实验设备及平台 ==== ==== 二、 实验设备及平台 ====
-  - iCore3 双核心板。 +  - iCore3 双核心板。[[https://​item.taobao.com/​item.htm?​id=524229438677|点击购买]] 
-  - JLINK(或相同功能)仿真器。+  - JLINK(或相同功能)仿真器。[[https://​item.taobao.com/​item.htm?​id=554869837940|点击购买]]
   - Micro USB线缆。   - Micro USB线缆。
   - Keil MDK 开发平台。   - Keil MDK 开发平台。
行 69: 行 67:
 ==== 三、 实验原理 ==== ==== 三、 实验原理 ====
  
-**SDIO简介**+  * **SDIO简介**
   * STM32F407提供了SD/​SDIO/​MMC主机接口,支持三种不同数据总线模式下的多媒体卡系统规范版本4.2:1位(默认)、4位和8位。   * STM32F407提供了SD/​SDIO/​MMC主机接口,支持三种不同数据总线模式下的多媒体卡系统规范版本4.2:1位(默认)、4位和8位。
     * 该接口允许在高达48兆赫的数据传输,并符合SD卡规范版本2.0。SDIO卡规范版本2.0还支持两种不同的数据总线模式:1位(默认)和4位。     * 该接口允许在高达48兆赫的数据传输,并符合SD卡规范版本2.0。SDIO卡规范版本2.0还支持两种不同的数据总线模式:1位(默认)和4位。
     * 当前版本一次只支持一个SD/​SDIO/​MMC4.2卡和一个MMC4.1或以前版本的堆栈。     * 当前版本一次只支持一个SD/​SDIO/​MMC4.2卡和一个MMC4.1或以前版本的堆栈。
     * 该接口完全符合CE-ATA数字协议第1.1版。     * 该接口完全符合CE-ATA数字协议第1.1版。
-**SDIO的时钟**+  * **SDIO的时钟**
     * 卡时钟(SDIO_CK):每个时钟周期在命令和数据线上传输1位命令或数据。对于多媒体卡V3.31协议,时钟频率可以在0MHz至20MHz间变化;对于多媒体卡V4.0/​4.2协议,时钟频率可以在0MHz至48MHz间变化;对于SD或SD I/​O卡,时钟频率可以在0MHz至25MHz间变化。     * 卡时钟(SDIO_CK):每个时钟周期在命令和数据线上传输1位命令或数据。对于多媒体卡V3.31协议,时钟频率可以在0MHz至20MHz间变化;对于多媒体卡V4.0/​4.2协议,时钟频率可以在0MHz至48MHz间变化;对于SD或SD I/​O卡,时钟频率可以在0MHz至25MHz间变化。
     * SDIO适配器时钟(SDIOCLK):该时钟用于驱动SDIO适配器,来自PLL48CK,一般为48Mhz,并用于产生SDIO_CK时钟。     * SDIO适配器时钟(SDIOCLK):该时钟用于驱动SDIO适配器,来自PLL48CK,一般为48Mhz,并用于产生SDIO_CK时钟。
     * APB2总线接口时钟(PCLK2):该时钟用于驱动SDIO的APB2总线接口,其频率为HCLK/​2,一般为84Mhz。     * APB2总线接口时钟(PCLK2):该时钟用于驱动SDIO的APB2总线接口,其频率为HCLK/​2,一般为84Mhz。
-**SD卡**+  * **SD卡**
   * SD卡是一种基于半导体快闪记忆器的新一代记忆设备,广泛应用于便携式装置上使用,按容量分为三类:   * SD卡是一种基于半导体快闪记忆器的新一代记忆设备,广泛应用于便携式装置上使用,按容量分为三类:
     * SD(SDSC)卡:2G容量     * SD(SDSC)卡:2G容量
行 84: 行 82:
     * SDXC卡:32G~2T容量     * SDXC卡:32G~2T容量
   * STM32F407上带有SDIO控制器,iCore3核心板上将SDIO连接到TF卡座上。本实验将Micro SD卡插入TF卡座上即可。硬件连接示意图如下:   * STM32F407上带有SDIO控制器,iCore3核心板上将SDIO连接到TF卡座上。本实验将Micro SD卡插入TF卡座上即可。硬件连接示意图如下:
-{{ :​icore3:​icore3_arm_hal_16_1.png?​direct |}} +{{ :​icore3:​icore3_arm_hal_16_1.png?​direct&​400 ​|}} 
-硬件电路图如下图所示: +  ​* ​硬件电路图如下图所示: 
-{{ :​icore3:​icore3_arm_hal_16_2.png?​direct |}}+{{ :​icore3:​icore3_arm_hal_16_2.png?​direct&​700 ​|}}
 ==== 四、 实验程序 ==== ==== 四、 实验程序 ====
 === 1. 主函数 === === 1. 主函数 ===
-在main.c程序中,在完成初始化之后,首先设置串口+  * 在main.c程序中,在完成初始化之后,首先设置串口
 <code c> <code c>
       MX_UART4_Init();​       MX_UART4_Init();​
行 98: 行 96:
       //​锁定对象       //​锁定对象
 </​code> ​ </​code> ​
-判断SD卡是否完成初始化,​初始化失败时红灯闪烁+  * 判断SD卡是否完成初始化,​初始化失败时红灯闪烁
 <code c> <code c>
  if(HAL_SD_Init(&​hsd) != 0){  if(HAL_SD_Init(&​hsd) != 0){
行 192: 行 190:
  
 </​code> ​ </​code> ​
-上述HAL_SD_CardInfoTypeDef,该结构体用来表述SD类型、容量、块大小等信息+  * 上述HAL_SD_CardInfoTypeDef,该结构体用来表述SD类型、容量、块大小等信息
  
 ==== 五、 实验步骤 ==== ==== 五、 实验步骤 ====
行 207: 行 205:
 ==== 附录: ==== ==== 附录: ====
  
-  - iCore3供电后,打开计算机----属性----设备管理器----端口+1.iCore3供电后,打开计算机----属性----设备管理器----端口
 {{ :​icore3:​icore3_arm_hal_16_4.png?​direct |}} {{ :​icore3:​icore3_arm_hal_16_4.png?​direct |}}
-  - 打开PuTTY+2.打开PuTTY
 {{ :​icore3:​icore3_arm_hal_16_5.png?​direct |}} {{ :​icore3:​icore3_arm_hal_16_5.png?​direct |}}
-  - 此时就可以烧写程序进行验证了。+3.此时就可以烧写程序进行验证了。
  
icore3_arm_hal_16.1585639800.txt.gz · 最后更改: 2020/03/31 15:30 由 zgf