完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如上图:所有测试都成功,最后读写SD卡测试失败!!请看我main中代码: void main() { int i=0; unsigned char flag=0; p34=0; //open com & GND // ea=0; delay(1); p34=1; // close com & GND DE_RE=0; Uart_port_Init(); UART_Send_Str("串口设置完毕rn"); SD_Reset(); UART_Send_Str("SD卡复位完毕rn"); SD_Init(); UART_Send_Str("SD卡初始化完毕rn"); for(i=0;i<512;i++) pbuf=i; UART_Send_Str("向数组缓冲区装入数据完毕rn"); SD_Write_Sector(ADDR,pbuf); UART_Send_Str("写SD卡扇区完毕rn"); for(i=0;i<512;i++) pbuf=0; UART_Send_Str("清空缓冲区完毕rn"); /* for(i=0;i<512;i++) { if(i<256) { pbuf=i; } else { pbuf=i-255; } }*/ SD_Read_Sector(ADDR,pbuf); UART_Send_Str("读取SD卡扇区完毕rn"); for(i=0;i<512;i++) { if(((unsigned char)i)!=pbuf) { flag=1; break; } } UART_Send_Str("数据匹配完毕rn"); if(flag) { UART_Send_Str("SD卡扇区读写测试失败!rn"); } else { UART_Send_Str("SD卡扇区读写测试成功!rn"); } while(1); 求路过大神们给分析下?谢谢!!! |
|
相关推荐
8个回答
|
|
你这里面很多步骤都是不痛不痒的。
当然不会报错,原因很可能出在SD卡写这里。 也就是:SD_Write_Sector(ADDR,pbuf); 话说,你这些函数都没有返回值的? 通过返回值判断函数有没有执行成功,比较可靠,你这printf,完全就是在观察代码有没有运行到某一行,至于运行的代码有没有什么问题,完全不知道。 |
|
|
|
谢谢原子哥!!!
|
|
|
|
接着问个问题:
因为我单片机的RAM是256字节,SD每一扇区是512字节的,我定义了unsigned char xdata pbuf[512] 这个定义是不是也存在问题?求教原子哥。 |
|
|
|
你的单片机有xdata么?
|
|
|
|
|
|
|
|
|
|
|
|
256字节的,没考虑过,呵呵。
|
|
|
|
55555555555555555.............................
|
|
|
|
只有小组成员才能发言,加入小组>>
3263 浏览 9 评论
2944 浏览 16 评论
3443 浏览 1 评论
8955 浏览 16 评论
4036 浏览 18 评论
1079浏览 3评论
559浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
552浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2287浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1848浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 17:02 , Processed in 0.999058 second(s), Total 61, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号