智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1317|回复: 2
打印 上一主题 下一主题

SD卡求解

[复制链接]

30

主题

221

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3092
威望
1467
贡献
621
兑换币
168
注册时间
2012-2-4
在线时间
502 小时
跳转到指定楼层
1#
发表于 2012-2-26 11:47:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
unsigned char SPI_ReadWriteByte(unsigned char TxData)
{
    unsigned char spi_tmp;
  
    while (!SPI0SR_SPTEF);  
    SPI0DRL = TxData;      
   
    while (!SPI0SR_SPIF);                                 
    spi_tmp = SPI0DRL;       //????
    return spi_tmp;
}
r1=SPI_ReadWriteByte(0xff);       为什么是必须写入0xff才能读取返回值?
spi_tmp = SPI0DRL;                   这个是什么意思呢?
谢谢各位!

9

主题

222

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1693
QQ
威望
863
贡献
216
兑换币
0
注册时间
2011-3-5
在线时间
307 小时
2#
发表于 2012-2-26 14:06:17 | 只看该作者
SPI是同步串行通信总线方式对不?
看图,
这是一个大概图,简单来说SPI就是完成主机和从机的数据交互,
比如我们想要拿回从机中的数据,主机必须要发送一些数据(随意的),来启动串行通信,因为时钟是由我们的主机发送的,从机只是接受这个时钟。
一个时钟,两者的数据交换一次,等8个时钟全了,就完成了一个字节的数据交换,这时从机的数据就到了主机的寄存器中即存放在SPI0DRL中,这就完成了我们想要的目的,拿回了从机中的数据。

so,这就是SPI,好好看看网上的资料,SPI没弄明白的话,你搞SD卡这个压力还是很大的。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

30

主题

221

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3092
威望
1467
贡献
621
兑换币
168
注册时间
2012-2-4
在线时间
502 小时
3#
 楼主| 发表于 2012-2-26 14:40:19 | 只看该作者
谢谢!以后还望多指教!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-23 01:36 , Processed in 0.069496 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表