您当前的位置:首页 > 美文摘抄 > 内容

Stm32 fpga 图像采集处理,STM32CubeMx之SD卡驱动

Stm32 fpga 图像采集处理,STM32CubeMx之SD卡驱动

1.SD卡简介SD数字存储卡是基于半导体闪存的新一代高速存储设备。SD存储卡的技术是从MMC(多媒体卡)格式发展而来,SDIO(SD输入/输出)卡是在兼容SD存储卡的基础上发展而来,包括机械、电子、电力、信号和软件。SD和SDIO卡通常被称为SD存储卡。SD卡存储容量大,数据传输速率快,移动灵活性大,安全性好。它广泛应用于便携式设备,如数码相机、平板电脑和多媒体播放器。SD卡支持两种总线模式:SD模式和SPI模式。其中,SD模式采用6线制,使用CLK、CMD和DAT0~DAT3进行数据通信。SPI模式采用4线制,使用CS、CLK、数据输入和数据输出进行数据通信。SD模式下的数据传输速度比SPI模式下更快。STM32F103ZE采用SDIO接口驱动,4位模式下最高速度可达24MHZ,8位总线模式下可达48MHZ。本章将介绍如何使用HAL库驱动SD卡。

2.SDIO SD/SDIO MMC卡主机模块(SDIO)介绍提供AHB外设总线与多媒体卡(MMC)、SD存储卡、SDIO卡、CE-ATA设备之间的操作接口。SDIO的主要职能如下:

完全兼容多媒体卡系统规范4.2版。支持三种不同的数据总线模式:1位(默认)、4位和8位。与早期多媒体卡系统规范完全兼容(向前兼容)。与早期多媒体卡系统规范完全兼容(向前兼容)。完全兼容SD存储卡规范2.0版。完全兼容SD I/O卡规范2.0版,支持不同的数据总线模式:1位(默认)和4位。完全支持CE-ATA功能(完全兼容CE-ATA数字协议版本1.1)。8位总线模式下数据传输速率可达48MHz。3.硬件接口引脚SDIOSPIdio _ D2 (PC10)数据线SDIO_D3(PC11)数据线SPI_CS片选SDIO_CMD(PD2)控制线SPI_MOSI主机输出SDIO_SCK(PC12)时钟SPI_SCK时钟线SDIO_D0(PC8)数据线SPI_MISO主机输入SDIO _ D1 (PC8)数据线4软件设置5代码生成1。对于1的相关配置。SD初始化,请参考STM32中文参考手册_V1.0 No.20.9.2时钟控制寄存器SDIO_CLKCR。

2.SD读写扇区功能为了方便后续FATFS文件系统的移植,我们封装了两个功能:SD卡写扇区和读扇区。

void SD_WriteDisk(uint8_t *buf,uint32_t sector_add,uint 32 _ t cnt){ HAL _ SD _ write blocks(HSD,buf,sector_add,CNT,5000);//标清卡写块while(HAL_SD_GetCardState(hsd)!=HAL _ SD _ CARD _ TRANSFER);//等待数据传输完成}void SD_ReadDisk(uint8_t *buf,uint32_t sector_add,uint 32 _ t cnt){ HAL _ SD _ read blocks(HSD,buf,sector_add,CNT,5000);//标清卡读块while(HAL_SD_GetCardState(hsd)!=HAL _ SD _ CARD _ TRANSFER);//等待数据传输完成}3.主函数uint8_t buf_tx[4096]='SD卡SDIO驱动硬件抽象层(硬件抽象层的缩写)库配置测试数据STM 32 f 103 zet 6-ver 1.0 'uint 8 _ t buf _ rx[4096];MX _ GPIO _ Init();MX _ FSMC _ Init();MX _ SDIO _ SD _ Init();MX _ usart 1 _ UART _ Init();MX _ SPI 2 _ Init();char buff[200];nt 35310 _ Init();//液晶显示器初始化LCD _ Display _ Str(LCD _ WIDTH/2-strlen(' SD卡初始化)/2*8,20,16,(u8 *)'SD卡初始化,黑色);如果(hsd .状态!=HAL _ SD _ STATE _ READY){ LCD _ Display _ Str(20,40,16,(u8 *)'SD Init ERR 'RED);}else{LCD_Display_Str(20,40,16,(u8 *)'SD Init OK 'RED);' LCD_Display_Str(20,60,16,(u8 *)'卡类型:'红色);如果(hsd .SdCard。CardType==卡_SDHC_SDXC)//2.0告诉卡{LCD_Display_Str(20 8 strlen('卡类型:')*8,60,16,(u8 *)'SDHC '红色);}else if(hsd .SD卡。卡类型==卡_ SDSC)//2.0普通卡{LCD_Display_Str(20 8 strlen('卡类型:')*8,60,16,(u8 *)'SDSC '红色);}snprintf(buff,sizeof(buff),'块大小:%d字节\n 'hsd .SD卡。块大小);LCD_Display_Str(20,80,16,(u8 *)缓冲区,红色);'' snprintf(buff,sizeof(buff),'卡容量大小:%.2f GB\n '(hsd .SD卡。缸体编号11)/1024.0);LCD_Display_Str(20,100,16,(u8 *)缓冲区,红色);} LCD _ Display _ Str(LCD _ WIDTH/2-strlen(' SD数据读写测试)/2*8,130,16,(u8 *)'SD数据读写测试,黑色);SD_WriteDisk(buf_tx,100,2);' LCD_Display_Str(20,150,16,(u8 *)'标清写数据:好的,红色);SD_ReadDisk(buf_rx,100,3);' LCD_Display_Str(20,170,16,(u8 *)'标清读数据:好的,红色);' LCD_Display_Str(20,190,16,(u8 *)'数据内容:'红色);LCD_Display_Str(20,210,16,(u8 *)buf_rx,蓝色);

标签:SD卡SDIO


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 采集什么如何填空?狂人采集器发帖软件

下一篇: 八路视频光端机(请问,在接监控时,光端机要如何来连接呢)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号