文章目录
- 一、SD卡简介
- 二、实验过程
- 三、总结
一、SD卡简介
安全数字卡(简称SD卡),最初引进应用于手持式可携带电子产品,在一个小尺寸产品上可靠的存储数据,如移动电话,数码相机等。
SD卡内部包含一个控制器,能控制内部所有的闪存操作。根据串行时钟数据在主机与卡之间传输,速度为512字节块。
SD卡有定义2套总线协议。默认是本地SD模式,但是能配置成较慢SPI模式。在上电后第一次复位命令期间选择协议。SD卡工作在SD模式,若将卡切换到SPI模式,当主机发送复位命令给卡时CS信号必须生效。一旦配置了专用的协议,在供电期间都不能改变。切换协议的唯一方法就是重新上电。
二、实验过程
1、最重要的过程来了,代码获取。
链接:https://pan.baidu.com/s/1oFMfQhgpS-x8skhIltIxaQ?pwd=dt81
提取码:dt81
2、主要代码修改
int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_SPI1_Init();MX_FATFS_Init();MX_USART1_UART_Init();HAL_UART_Receive_IT(&huart1,&aRxBuffer1,1); //enable uart printf(" mian \r\n");Get_SDCard_Capacity(); //得到使用内存并选择格式化while (1){WritetoSD(WriteBuffer,sizeof(WriteBuffer)); HAL_Delay(500);WriteBuffer[0] = WriteBuffer[0] +0;WriteBuffer[1] = WriteBuffer[1] +1;write_cnt ++;while(write_cnt > 200){ printf(" while \r\n");HAL_Delay(500);} }
}
WriteBuffer函数要把最后位的数字改成跟前面一样。
3、烧录程序及结果展示
4、注意事项
a.供电需要用到5V,3V3的不行
b.接线的话要尽可能的短,太长会挂载失败,可能是线路不稳定的原因。
接线说明:
SD卡 | 单片机 |
---|---|
CS | PB0 |
SCK | PA5 |
MOSI | PA7 |
MISO | PA6 |
VCC | 5V |
GND | GND |
三、总结
就我个人觉得的话实验还是挺简单的,站在巨人的肩膀上,乘了前人的凉。但是也不简单。就是你跟别人一样你也做不出来。可能是线路不稳定的原因,或者是其它的,反正我感觉这成功需要很大的运气,有时候突然就行了,然后下次又不行了。
参考链接:
https://blog.csdn.net/m0_58414679/article/details/122036435?spm=1001.2014.3001.5501