/// SPI硬件层初始化 void SD_SPI_Init(void) { HAL_GPIO_WritePin(SPI_CLK_GPIO_Port, SPI_CLK_Pin, GPIO_PIN_RESET); /* 时钟空闲为低电平 */ SD_SPI_ReadWriteByte(0xFF); SD_CS_H(); } SD SPI 驱动代码 / //取消选择,释放SPI总线 void SD_DisSelect(void) { SD_CS_H(); SD_SPI_Re...
想做一个基于SPI的SD卡文件系统读写SD卡上的文件,再配合USB接口做一个模拟U盘。只能利用业余时间慢慢更新,也不知道能不能坚持下去。 我会把从零开始开发一个程序需要经历的过程一一的记录下来。做成一个奶妈级的单片机开发笔记。一、硬件简介 1.SD卡和MicroSD卡(TF卡)的区别 由下图可以很容易的看出TF卡只是比SD...
retSD = f_write(&SDFile,writeBuf, strlen((const char *)writeBuf), &writeLen); if(retSD!=FR_OK) { while(1); } f_close(&SDFile); // 读 retSD = f_open(&SDFile,fileName, FA_OPEN_EXISTING | FA_READ); if(retSD!=FR_OK) { while(1); } retSD = f_read(&SDFile,readBuf...
SD卡/TF卡pin脚定义连线SD Card -> STM32DAT3/CS -> PB0 CMD/DI -> SPI1:MOSI:PA7 VDD -> 3V3 CLK -> SPI1:SCLK:PA5 VSS -> GND DAT0/DO -> SPI1:MISO:PA6串口PA9:TX, PA10:RX, 用于输出测试信息代码修改通过STM32CubeMX生成代码后, 将后面附录中的fatfs_sd.c和fatfs_sd.h添加到项目...
SDMMC接口的全称叫SD/SDIO MMC card host interface,SD/SDIO MMC 卡 主机接口,通俗的来说,就是这个接口支持SD卡,支持SDIO设备,支持MMC卡。UHS
函数功能:底层SD卡接口初始化 本程序SPI接口如下: PC11 片选 SDCardCS PC12时钟SDCardSCLK PD2 输出 SPI_MOSI--主机输出从机输入 PC8 输入 SPI_MISO--主机输入从机输出 */void SDCardSpiInit(void) { /*1. 开启时钟*/RCC- >APB2ENR|=1< <5;//使能PORTD时钟RCC- >APB2ENR|=1< <4;//使能PORTC...
到很大(32GB 以上),支持 SPI/SDIO 驱动,而且有多种体积的尺寸可供选择(标准的 SD 卡尺 寸,以及 TF 卡尺寸等),能满足不同应用的要求。 只需要少数几个 IO 口即可外扩一个高达 32GB 以上的外部存储器,容量从几十 M 到几十 G 选择尺度很大,更换也很方便,编程也简单,是单片机大容量外部存储器的首选。
void delay_init(u8 SYSCLK) { u32 reload; HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK)...
选择FATFS中间件,勾选SD Card; 然后设置文件名为英文、缓存在堆(STACK)中(设置为英文是为了节省内存); 注意一下下面的两个512,设置的是扇区的大小,默认是最大和最小都是512不修改;这是因为大部分的TF/SD卡的扇区大小是512字节(512字节一个扇区是在存储卡出厂时就确定了,不能更改,我们在计算机上格式化时,选择...
SPI外设的MOSI、MISO、SCK还是照用不误,但是片选我们不用,设置成通用输出模式,再用其他的GPIO片选从芯片即可。 上代码看看: void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) { GPIO_InitTypeDef GPIO_InitStruct = {0}; if(hspi->Instance==SPI1) { __HAL_RCC_SPI1_CLK_ENABLE(); __HAL_RCC_GPIOA_CL...