完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我现在测试MSD_WriteBuffer和MSD_ReadBuffer 是否能读写buffer ,函数返回正常值0,但是不能写入和读出sd卡的内容。 我把主程序列的下面,让大家帮我看看。
#include <STM32f10x_lib.h> #include "sys.h" #include "usart.h" #include "delay.h" #include "led.h" #include "key.h" #include "exti.h" #include "wdg.h" #include "timer.h" #include "lcd.h" #include "rtc.h" #include "wkup.h" #include "adc.h" #include "dma.h" #include "24cxx.h" #include "flash.h" #include "touch.h" #include "24l01.h" #include "mmc_sd.h" u8 buf[512];//SD卡数据缓存区 u8 buf_1[512];//SD卡数据缓存区 u8 buf_2[512];//SD卡数据缓存区 u8 buf_3[512];//SD卡数据缓存区 u8 cidcid[16]; u16 num; int main(void) { u32 sd_size; u8 t=0; Stm32_Clock_Init(9);//系统时钟设置 delay_init(72); //延时初始化 uart_init(72,9600); //串口1初始化 LCD_Init(); //初始化液晶 LED_Init(); //LED初始化 OINT_COLOR=RED;//设置字体为红色 LCD_ShowString(60,50,"Mini STM32"); LCD_ShowString(60,70,"SD Card TEST"); LCD_ShowString(60,90,"ATOM@ALIENTEK"); LCD_ShowString(60,110,"2011/8/19"); while(SD_Init()!=0)//检测不到SD卡 { LCD_ShowString(60,130,"SD Card Failed!"); delay_ms(500); LCD_ShowString(60,130,"Please Check! "); delay_ms(500); LED0=!LED0;//DS0闪烁 } //检测SD卡成功 LCD_ShowString(60,130,"SD Card Checked OK "); LCD_ShowString(60,150,"SD Card Size: Mb"); sd_size=SD_GetCapacity(); LCD_ShowNum(164,150,sd_size>>20,4,16);//显示SD卡容量 while(1) {if(t==1)//每1s钟执行一次 { for(num=0;num<512;num++) //先给buf_2赋值,从0至511 { buf_2[num]=num; } if(MSD_WriteBuffer(buf_2,0xb9d4,511)==0) // 把buf_2中的值写入SD卡 { LCD_ShowString(15,130,"WRITE Buffer OK!"); } delay_ms(900); for(num=0;num<512;num++) //再给buf_2赋值全部为0xaa { buf_2[num]=0xaa; } if(MSD_ReadBuffer(buf_2,0xb9d4,511)==0) //从SD卡中读出的数据放入buf_2 { LCD_ShowString(15,270,"READ Buffer OK!"); } else LCD_ShowString(15,270,"MSD READ NOT OK!"); LCD_ShowNum(10,150,buf_2[1],4,16); //开始显示buf_2中的数据 LCD_ShowNum(50,150,buf_2[2],4,16); LCD_ShowNum(90,150,buf_2[3],4,16); LCD_ShowNum(130,150,buf_2[4],4,16); LCD_ShowNum(170,150,buf_2[5],4,16); LCD_ShowNum(10,170,buf_2[6],4,16); LCD_ShowNum(50,170,buf_2[7],4,16); LCD_ShowNum(90,170,buf_2[8],4,16); LCD_ShowNum(130,170,buf_2[9],4,16); LCD_ShowNum(170,170,buf_2[10],4,16); LCD_ShowNum(10,190,106,4,16); LCD_ShowNum(50,190,buf_2[21],4,16); LCD_ShowNum(90,190,buf_2[22],4,16); LCD_ShowNum(130,190,buf_2[23],4,16); LCD_ShowNum(170,190,buf_2[24],4,16); LCD_ShowNum(10,210,buf_2[25],4,16); LCD_ShowNum(50,210,buf_2[26],4,16); LCD_ShowNum(90,210,buf_2[27],4,16); LCD_ShowNum(130,210,buf_2[28],4,16); LCD_ShowNum(170,210,buf_2[29],4,16); LCD_ShowNum(10,230,buf_2[30],4,16); LCD_ShowNum(50,230,buf_2[31],4,16); LCD_ShowNum(90,230,buf_2[32],4,16); LCD_ShowNum(130,230,buf_2[33],4,16); LCD_ShowNum(170,230,buf_2[34],4,16); t=0; } t++; delay_ms(900); } } |
|
相关推荐
6个回答
|
|
SD_ReadSingleBlock 这个函数是正常的。
|
|
|
|
是有可能的。开发板的SD卡部分,不是很完善,某些卡不支持的。
|
|
|
|
|
|
|
|
fat文件系统也只是用了,readsingleblock和writesingleblock,没有读写任意地址的wirtebuffer和readbuffer。
|
|
|
|
|
|
|
|
终于找到了,在工程的USBCFG组里面,mass_mal.c文件里面。MAL_Read()函数调用了MSD_ReadBuffer()函数。
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1801 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1629 浏览 1 评论
1096 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
735 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1684 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
745浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
579浏览 3评论
602浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
565浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 15:04 , Processed in 0.940639 second(s), Total 86, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号