你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】stm32Cubemx实用篇(四):SD卡读写实验

[复制链接]
STMCU小助手 发布时间:2022-3-8 22:09
一、Cubemx工程配置
1、时钟配置

Y`E)D33`RG0AQBL4%OV)WTN.png

2、SDMMC设置

官方库文件建议如下:
The SD Card frequency (SDMMC_CK) is computed as follows:
SDMMC_CK = SDMMCCLK / (2 * ClockDiv)

具体设置如下图所示:
[1NDJNFA5T~Z1BFBURRZN(X.png

二、实验部分
1.获得TF卡信息

初始化好SD后我们先获得卡信息并串口打印出来。
  1. HAL_SD_CardInfoTypeDef  SDCardInfo;         //SD卡信息结构体
  2. //得到卡的信息并输出到串口1
  3. HAL_SD_GetCardInfo(&hsd1, &SDCardInfo);//HAL_SD_CardInfoTypeDef *pCardInfo);//获取SD卡信息
  4. printf("Card Type:%d\r\n",SDCardInfo.CardType);   //卡类型
  5. printf("Card CardVersion:%d\r\n",SDCardInfo.CardVersion);             //CardVersion
  6. printf("Card RCA:%d\r\n",SDCardInfo.RelCardAdd);        //卡相对地址
  7. printf("Card Capacity:%d MB\r\n",(u32)(SDCardInfo.LogBlockNbr)>>11);        //显示容量
  8. printf("Card BlockSize:%d\r\n\r\n",SDCardInfo.LogBlockSize);//显示块大小
复制代码

可以看出已经正确读出卡片信息,如下图:

9[33H@@)QQ%]7L6ZF3~8YJI.png

2.读、写、擦除SD卡
这里需要注意的一点是,库文件官方建议如下:

XL`9N%4K`2CY`Z`_$ES12GI.png

操作SD卡后需要先用函数HAL_SD_GetCardState()确定一下卡的状态再进行其他操作。后期使用需要注意

实验方式:按键1按下时给扇区6写入512个字节的0xbb。按键2按下时读取扇区6内的内容。按键3按下时擦除扇区6的内容。 另外,由于定义了rd_buf和buf为512个字节需要将栈设置大一点,不然程序运行会不正常。

5BDED(72Y6`YJI%)Y(EH]NA.png

实验代码如下(示例):
  1. key=KEYPRESS();    //按键
  2. if(key==1)//KEY1按下了
  3. {
  4.          for(sd_size=0;sd_size<512;sd_size++)buf[sd_size]=0xbb;  //给扇区6写数据
  5.        HAL_SD_WriteBlocks(&hsd1, buf, 512*6, 1, 0xff);
  6.        printf("\r\nWrite DATA ENDED\r\n");
  7. }  
  8. if(key==2)//KEY2按下了
  9. {
  10. //读取扇区6的内容
  11. if(HAL_SD_ReadBlocks(&hsd1, rd_buf, 512*6, 1, 0xff)  == HAL_OK)
  12. {        
  13.         printf("SECTOR 6  DATA:\r\n");
  14.         for(sd_size=0;sd_size<512;sd_size++)
  15.         printf("%x ",rd_buf[sd_size]);//打印扇区数据               
  16.     printf("\r\nRead DATA ENDED\r\n");
  17.         }
  18. }
  19. if(key==3)//KEY3按下了 擦除扇区6的内容
  20. {
  21.    HAL_SD_Erase(&hsd1,512*6,512*7);
  22.    printf("\r\nErase DATA ENDED\r\n");
  23. }
复制代码


3.实验现象

最终可以在串口看到正确的实验现象,如下图:

6B@J17L9N}~S1_KJQ8V`GEQ.png





收藏 评论0 发布时间:2022-3-8 22:09

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版