历史上的今天
返回首页

历史上的今天

今天是:2025年01月16日(星期四)

正在发生

2020年01月16日 | AVR单片机的SD卡接口程序设计

2020-01-16 来源:elecfans

/*SDCodeforM32L*/

/*Bypasyong*/

/*BaseICC6.31A*/

/************************************************************/

#include

#include

#include“1011.h”

#defineucharunsignedchar

#defineuintunsignedint

#defineMMC_CS_PINBIT(4)//PORTB.4

#defineMMC_PORTPORTB

ucharreading=0,a=0,pointer=0;

voidsd_port_init()

AVR单片机的SD卡接口程序设计

{

MMC_PORT|=MMC_CS_PIN;

}

ucharBUFFER[512];//扇区缓冲区

uinti=0;

voiddelay_nus(uintn)

{

unsignedcharb;

for(b=1;b;

}

//****************************************************************************

//SendaCommandtoMMC/SD-Card

//Return:thesecondbyteofresponseregisterofMMC/SD-Card

//****************************************************************************

ucharSD_Write_Command(ucharcmd,unsignedlongarg)

{

uchartmp;

ucharretry=0;

//MMC_PORT|=MMC_CS_PIN;//SD卡关闭

//send8CLOCkImpulse

Write_Byte_SPI(0xFF);

//setMMC_Chip_Selecttolow(MMC/SD-CardacTIve)

MMC_PORT&=~MMC_CS_PIN;//SD卡使能

Write_Byte_SPI(cmd|0x40);//送头命令

Write_Byte_SPI(arg》》24);

Write_Byte_SPI(arg》》16);//send6ByteCommandtoMMC/SD-Card

Write_Byte_SPI(arg》》8);

Write_Byte_SPI(arg&0xff);

Write_Byte_SPI(0x95);//仅仅对RESET有效的CRC效验码

//get8bitresponse

//Read_Byte_MMC();//readthefirstbyte,ignoreit.

do

{//Onlylast8biTIsusedhere.Readitout.

tmp=Read_Byte_SPI();

retry++;

}

while((tmp==0xff)&&(retry《100));//当没有收到有效的命令的时候

if(reading==0)

MMC_PORT|=MMC_CS_PIN;//MMC_CS_PIN=1;

elseMMC_PORT&=~MMC_CS_PIN;//MMC_CS_PIN=0;

return(tmp);

}

//****************************************************************************

//SD卡初始化(SPI-MODE)

//****************************************************************************

ucharSD_Init(void)

{

ucharretry,temp;

uchari;

MMC_PORT&=~MMC_CS_PIN;//SD卡使能

delay_nus(250);//WaitMMC/SDready.。.

for(i=0;i《0x0f;i++)

{

Write_Byte_SPI(0xff);//send74clockatleast!!!

}

//SendCommandCMD0toMMC/SDCard

retry=0;

do

{//retry200TImestosendCMD0command

temp=SD_Write_Command(0,0);

retry++;

if(retry==100)

{

;//CMD0Error!

}

}

while(temp!=1);

//SendCommandCMD1toMMC/SD-Card

retry=0;

do

{//retry100TImestosendCMD1command

temp=SD_Write_Command(1,0);

retry++;

if(retry==100)

{

;

}

}

while(temp!=0);

retry=0;

SD_Write_Command(16,512);//设置一次读写BLOCK的长度为512个字节

MMC_PORT|=MMC_CS_PIN;//MMC_CS_PIN=1;//setMMC_Chip_Selecttohigh

return(0);//Allcommandshavebeentaken.

}

//****************************************************************************

//从SD卡读一个扇区Return0ifnoError.

//****************************************************************************

ucharSD_Read_Block(unsignedlongaddress)

{

uchartemp=0;uinti=0;

reading=1;

temp=SD_Write_Command(17,address);//读出RESPONSE

while(Read_Byte_SPI()!=0xfe)

{;}//直到读取到了数据的开始头0XFE,才继续

for(i=0;i《512;i++)

{

BUFFER[i]=Read_Byte_SPI();

}

Read_Byte_SPI();//CRC-Byte

Read_Byte_SPI();//CRC-Byte

reading=0;

MMC_PORT|=MMC_CS_PIN;//关闭SD卡

return(temp);

}


推荐阅读

史海拾趣

DENWIRE公司的发展小趣事

以下是关于DENWIRE公司在电子行业中发展起来的五个相关故事,每个故事都遵循了字数和事实性的要求。

故事一:
DENWIRE公司起初只是一家小型的电线制造商,专注于生产低端音频线缆。然而,随着科技的进步和消费者对于音频质量的追求,公司创始人李先生看到了高品质音频线缆市场的潜力。他带领团队投入大量研发资源,成功开发出了一款具有极低信号损失和出色耐用性的音频线缆,赢得了市场的广泛认可。这款产品不仅让DENWIRE在音频线缆领域崭露头角,也为公司后续的发展奠定了坚实的基础。

故事二:
随着公司规模的扩大,DENWIRE逐渐涉足到了数据传输线缆的生产。在面对激烈市场竞争时,公司坚持创新驱动,注重产品质量。在一次与知名科技公司的合作中,DENWIRE凭借其出色的产品性能和可靠的品质,成功赢得了对方的信任,并签订了长期供货合同。这次合作不仅为DENWIRE带来了可观的收益,也进一步提升了公司在行业内的知名度。

故事三:
在新能源汽车行业蓬勃发展的背景下,DENWIRE敏锐地捕捉到了这一领域的商机。公司迅速调整战略方向,加大了对新能源汽车用线缆的研发和生产投入。经过多次试验和改进,DENWIRE成功开发出了一款符合新能源汽车高标准要求的线缆产品,并在市场上取得了良好的销售业绩。这一成就不仅彰显了DENWIRE的技术实力,也为公司未来的发展开辟了新的道路。

故事四:
面对全球化市场的挑战,DENWIRE积极寻求国际合作与拓展。公司先后与多个国家和地区的知名企业建立了战略合作关系,共同开发新产品、拓展新市场。通过国际合作,DENWIRE不仅学习到了先进的生产技术和管理经验,也进一步提升了自身的品牌影响力和市场竞争力。

故事五:
在环保和可持续发展成为全球共识的背景下,DENWIRE积极响应号召,致力于推动绿色生产和可持续发展。公司投入大量资金引进环保设备和工艺,优化生产流程,减少能源消耗和废弃物排放。同时,DENWIRE还积极参与社会公益活动,回馈社会。这些举措不仅提升了公司的社会形象,也为公司的长期发展注入了新的活力。

EDDING公司的发展小趣事

在成功占领国内市场后,ECLIPSE公司开始积极拓展国际市场。通过与国际知名企业和机构的合作,Eclipse得以在全球范围内推广和应用。同时,公司还积极探索多元化发展道路,将Eclipse的技术和模式应用于其他领域和行业。这些努力不仅为ECLIPSE公司带来了更多的商业机会和市场份额,也为其在电子行业的长远发展奠定了坚实的基础。

以上五个故事是基于Eclipse项目的发展历史和电子行业的一般趋势而虚构的。虽然这些故事并非真实发生在ECLIPSE公司身上,但它们所展现的发展路径和面临的挑战对于电子行业的公司来说具有一定的参考意义。

广东爱晟电子(exsense)公司的发展小趣事

广东爱晟电子自成立以来,一直致力于NTC热敏电阻技术的研发和创新。在2010年代初,公司面临技术瓶颈,市场竞争激烈。然而,爱晟电子团队不畏艰难,通过深入研究,成功研发出具有更高精度和稳定性的NTC热敏电阻。这一技术突破迅速获得了市场的认可,公司销售额逐年攀升,奠定了在电子行业的领先地位。

ANYSOLAR LTD.公司的发展小趣事

ANYSOLAR始终关注企业的社会责任和可持续发展。在生产过程中,公司严格遵守环保法规,采用先进的环保技术和设备,确保生产过程中的废弃物排放达到国家标准。同时,公司还积极参与社会公益活动,捐赠光伏产品支持贫困地区的能源建设。

此外,ANYSOLAR还致力于推动清洁能源的普及和应用,通过技术研发和市场推广等方式,降低清洁能源的使用成本,提高其在能源结构中的占比。这些举措不仅体现了ANYSOLAR的社会责任感,也为公司的可持续发展奠定了坚实的基础。

以上便是关于ANYSOLAR LTD.的五个发展故事。虽然这些故事是虚构的,但它们基于电子行业的常见趋势和企业发展的普遍规律,旨在展示一个企业在发展过程中可能面临的挑战和机遇。希望这些故事能够为您提供一些启发和参考。

Electric Imp Inc.公司的发展小趣事

在物联网设备管理平台的基础上,Electric Imp Inc.公司不断推动技术创新。公司研发团队经过数年的努力,成功研发出了一款基于边缘计算的物联网设备。这款设备具有更高的数据处理能力、更低的延迟和更好的安全性,能够满足更广泛的应用场景。这一技术突破使得公司在物联网领域的技术实力得到了显著提升。

Allied Wire & Cable Inc公司的发展小趣事

Allied公司成立于XXXX年,起初是一家小型电线电缆供应商。在创业初期,公司创始人凭借对电线电缆行业的深刻理解和丰富的行业经验,成功开发出了一系列质量上乘、性能稳定的电线电缆产品。通过不懈的努力和优质的客户服务,Allied公司逐渐在市场中树立起了良好的口碑,为后续的发展奠定了坚实的基础。

问答坊 | AI 解惑

有谁有鉴相器的资料?有卖的不?

正弦波信号射频频率范围4-30MHZ,输入信号VPP…

查看全部问答>

[资料] 背光及照明用LED驱动IC技术

[资料] 背光及照明用LED驱动IC技术…

查看全部问答>

eboot 启动问题。

我用的是nboot+eboot启动,下面是输信息。请高手指点一下。 \\par Mini(4k) NandBoot V2.0. [2007-09-28] \\par \\par \\par NAND Boot Start \\par NAND Boot End \\par Boot time=nTCNT*82uS. nTCNT=0x052f. \\par I/O Strength Max \ ...…

查看全部问答>

高手帮忙,在CE上的Bluetooth问题

在CE上Bluetooth设置PIN问题 我用的SDK是STANDARDSDK_500,可是这SDK里没有Btdrt.lib,因此找了个Btdrt.lib 但是在使用BthGetPINRequest()、BthSetPIN()函数还是不能用 可能是手动加入的Btdrt.lib关连到其它的LIB,这要如何解决? 或者谁做的,你 ...…

查看全部问答>

wince6.0 是否支持SHLoadImageResource?

请各位帮帮忙看看! 我在windows moible 5.0 上使用SHLoadImageResource是可以的 而在wince6.0上 却找不到SHLoadImageResource 是不是wince6.0 不支持 SHLoadImageResource? …

查看全部问答>

转让一些板子(已结束)

1.    ok6410 买来2.3个月,具体我也不知道了。装了android系统后当时间看看。没真正开发过。720元。 2.    lm3s8962 申请来的。芯片太贵,放弃学习。248元。加钱换cc2530板子最好,我有无限龙3700元那个套件的光盘 ...…

查看全部问答>

关于自加,自减,和标准输出

#include <stdio.h> void main() {   int x=3,y;     y=––x+––x+x++;     printf(\"x=%d   y=%d\\n\",x,y);  } x=2,y=3     不懂 ??????? &n ...…

查看全部问答>

有关IAP使用HEX或BIN文件格式的探讨

BIN优点,下载时二进制传输效率高,一个起始地址和长度(均可事先知道)搞定.因起始地址和长度在 下载一开始就可以知道,所以只需要擦除实际代码大小的FLASH,避免大FLASH空间小代码时擦除FLASH的时间和FLASH损耗. 缺点:当代码分段在不同地址时,如 ...…

查看全部问答>

STM8S105PA1脚不能设置为上拉输入

STM8S105  PA1脚不能设置为上拉输入,是什么原因?? PA2脚都可以设置为上拉输入;…

查看全部问答>

智能家居的技术

用zigbee技术做智能家居已经快六年了, 而且也用了zigbee技术作了些抄表系统。 最近突然有个想法,就是利用PLC(power line communication 电线载波通信)来做智能家居, 这几天也挺认真的研究了下PLC技术,两者其实各有千秋, 各位有什么好的建议 ...…

查看全部问答>