新唐M0读写W25Q16存储器的程序

上传人:小** 文档编号:165269246 上传时间:2022-10-27 格式:DOC 页数:4 大小:99.50KB
收藏 版权申诉 举报 下载
新唐M0读写W25Q16存储器的程序_第1页
第1页 / 共4页
新唐M0读写W25Q16存储器的程序_第2页
第2页 / 共4页
新唐M0读写W25Q16存储器的程序_第3页
第3页 / 共4页
资源描述:

《新唐M0读写W25Q16存储器的程序》由会员分享,可在线阅读,更多相关《新唐M0读写W25Q16存储器的程序(4页珍藏版)》请在装配图网上搜索。

1、#includeSlaveh/功能:初始化外设SPIO.voidSPlO_start(void)/*GPIO为SPZEO所用*/DrvGPIO_InitFunction(EFUNC_SPIO);/*SPIO刃主模式,传输类型=1;32位传输DrvSPISetEndian(eDRVSPIPORTO,eDRVSPIMSBFIRST);DrvSPIOpen(eDRVSPIMPORT0,eDRVSPI_MASTERzeDRVSPI_TYPEl,8);/*MSB优先*/*禁止口动从选择*/DrvSPI_DisableAutoSS(eDRVSPI_PORTO);/*从透择引脚低电平激活*/一DrvSPI_

2、SetSlaveSelectActiveLevel(eDRVSPI_PORTO,eDRVSPI_ACTIVE_LOW_FALLING);/*禁止2比特传输模式*/一-DrvSPI_Set2BitTransferMode(eDRVSPI_PORT0,FALSE);/*SPlOfKj时钟频率为:1MHz*/DrvSPI_SetClockFreq(eDRVSPI_PORTOf6000000,0);/功能:核对制造商编号:OxEF;器件编号:ID:0x14./输入:/输出:voidW25Q16_RMidDid(void)uint32tx1;/*发送位宽为:8bits*/DrvSPI_SetBitLen

3、gth(eDRVSPI_PORT0f8);/*设賈从选择引脚:SSO*/一DrvSPISetSS(eDRVSPI_PORT0,eDRVSPI_SS0);/*发扌旨令:0x90,读(MID/DID*/x0=0x90;DrvSPISingleWrite(eDRVSPI_PORT0,x);/*等待空闲*/-while(DrvSPI_IsBusy(eDRVSPI_PORT0);/*发送位宽为724bits*/一DrvSPI_SetBitLength(eDRVSPI_PORT0f24);/*发送:24字节0*/一x0=0x0;DrvSPISingleWrite(eDRVSPI_PORT0,x);/*等待

4、空闲*/-while(DrvSPI_IsBusy(eDRVSPI_PORT0);/*发送位宽为:16bits*/DrvSPISetBitLength(eDRVSPI_PORT0f16);/*接收*/一x0=0x0;DrvSPISingleWrite(eDRVSPI_PORT0,x);/*等待空闲*/-while(DrvSPI_IsBusy(eDRVSPI_PORT0);/*禁止从选择引脚:sso*/一DrvSPI_ClrSS(eDRVSPIPORTO,eDRVSPI_SS0);/*从厂Rx寄存器读回薮据*/_DrvSPI_DumpRxRegister(eDRVSPI_PORT0,x,1);/*

5、核対:MIDandDID*/x0&=0xFFFF;if(x0!=0xEF14)while(1);/功能:读取W25Q16的状态寄存器1/输出:y0&0xFF;/uint32_tW25Q16_RSRegl(void)uint32_tx1zy1;/*发送位宽为:16bits*/DrvSPI_SetBitLength(eDRVSPI_PORTOf16);/*设番从选择引脚:SSO*7DrvSPISetSS(eDRVSPIPORTO,eDRVSPI_SSO);/*发布令:0x05,读状态寄存器1*/_x0=0x0500;DrvSPISingleWrite(eDRVSPI_PORTO,x);/*等特空闲

6、*/-while(DrvSPI_IsBusy(eDRVSPI_PORTO);/*禁止从选择引脚:sso*/一DrvSPI_ClrSS(eDRVSPIPORTO,eDRVSPI_SSO);/*从:一Rx寄存器读回据*/_DrvSPI_DumpRxRegister(eDRVSPI_PORT0,y,1);return(y0&0xFF);/功能:检査SPTflash的BUSY位.等待W25Q16空闲。voidW25Q16_WaitReady(void)uint32tx;dox=W25Q16_RSRegl();x&=0x01;while(x!=0);/功能:擦除W25Q16整片(10S)。/voidW2

7、5Q16_CErase(void)uint32tx1;/*等待空闲*/W25Q16_WaitReady();/*发送位宽为:8bits*/DrvSPI_SetBitLength(eDRVSPI_PORT0z8);/*设賈从选择引脚:SSO*/一DrvSPISetSS(eDRVSPIPORTO,eDRVSPI_SS0);/*发扌S令:0x06,写便能*/一x0=0x06;DrvSPISingleWrite(eDRVSPIPORTO,x);/*等待空闲*/-while(DrvSPI_IsBusy(eDRVSPI_PORT0);/*禁止从选择引脚:sso*/一DrvSPI_ClrSS(eDRVSPI

8、_PORT0,eDRVSPI_SS0);ms(2);/*设置从选择引脚:SSO*/DrvSPISetSS(eDRVSPIPORTO,eDRVSPI_SS0);/*发抬令:0xC7,片擦嗓*/一x0=0xC7;DrvSPISingleWrite(eDRVSPIPORTO,x);/*等待空闲*/-while(DrvSPI_IsBusy(eDRVSPI_PORT0);/*禁止从选择引脚:sso*/一DrvSPI_ClrSS(eDRVSPI_PORT0,eDRVSPI_SS0);/功能:W25Q16:扇区擦除。(400mS)/输入:Add:扇区起始地址。/voidW25Q16_SErase(uint3

9、2_tAdd)uint32tx1;/*辱待空闲*/W25Q16_WaitReady();/*发送位宽为:8bits*/DrvSPI_SetBitLength(eDRVSPI_PORT0z8);/*设置从选择引脚:SSO*/DrvSPISetSS(eDRVSPIPORTO,eDRVSPI_SSO);/*发布令:0x06,写役能*/_x0=0x06;DrvSPISingleWrite(eDRVSPI_PORTO,x);/*等持空闲*/-while(DrvSPI_IsBusy(eDRVSPI_PORTO);/*禁止从选择引脚:sso*/一DrvSPI_ClrSS(eDRVSPI_PORTOzeDRV

10、SPI_SSO);ms(2);/*设置从选择引脚:SSO*/DrvSPISetSS(eDRVSPI_PORTOzeDRVSPI_SSO);/*发布令:0x20,扇区擦除/x0=0x20;DrvSPI_SingleWrite(eDRVSPI_PORT0,x);/*发送位宽为:24bits*/_DrvSPISetBitLength(eDRVSPIMPORT0A24);/*发送:24-bit起始地址*/Add&=0xFFFFF000;x0=Add;DrvSPISingleWrite(eDRVSPI_PORT0zx);/*等特空闲*/一while(DrvSPI_IsBusy(eDRVSPI_PORT0

11、);/*禁止从选择引脚:sso*/一DrvSPI_ClrSS(eDRVSPI_PORT0,eDRVSPI_SS0);/功能:W25Q16页读取(和SPIEO连接)。/输入:uint32_tAdd/倫出:uint8_t*DBuf/voidW25Q16PR(uint8t*DBuf,uint32tAdd)uint32tx1zi;/*等待空闲*/W25Q16_WaitReady();/*发送位宽为:8bits*/DrvSPI_SetBitLength(eDRVSPIMPORT0A8);/*设賈从选择引脚:SSO*/一DrvSPI_SetSS(eDRVSPI_PORT0zeDRVSPI_SS0);/*发

12、送:0x03,读数据命令*/_x0=0x03;DrvSPISingleWrite(eDRVSPI_PORT0,x);/*等待空闲*/-while(DrvSPI_IsBusy(eDRVSPI_PORT0);/*发送位宽为724bits*/一DrvSPISetBitLength(eDRVSPIMPORT0A24);/*发送:24-bit起始地址*/Add&=0xFFFFFF00;x0=Add;DrvSPISingleWrite(eDRVSPI_PORT0,x);/*等待空闲*/-while(DrvSPI_IsBusy(eDRVSPI_PORT0);/*发送位宽为78bits*/一DrvSPI_Se

13、tBitLength(eDRVSPIMPORT0A8);for(i=0;i0xl00;i+)/*读取*/x0=0x00;DrvSPISingleWrite(eDRVSPI_PORT0,x);/*等待空闲*/一while(DrvSPI_IsBusy(eDRVSPI_PORT0);/*从:Rx寄存烈读回数据/一DrvSPI_DumpRxRegister(eDRVSPI_PORT0,x,1);DBufi=(uint8_t)x0;/*禁止从选择引脚:SSO*/DrvSPI_ClrSS(eDRVSPI_PORT0zeDRVSPI_SS0);/功能:W25Q16页写入。/输入:uint32_tAdd页始地

14、址,uint8_t*DBuf待写入的数纽。/voidW25Q16_PW(uint32_tAdd,uint8_t*DBuf)uint32tx1zi;/*辱待空闲*/W25Q16_WaitReady();/*发送位宽为:8bits*/DrvSPI_SetBitLength(eDRVSPIMPORT0,8);/*设賈从选择引脚:SSO*/一DrvSPISetSS(eDRVSPIPORTO,eDRVSPI_SSO);/*发扌S令:0x06,写便能*/一x0=0x06;DrvSPISingleWrite(eDRVSPI_PORT0zx);/*等待空闲*/-while(DrvSPI_IsBusy(eDRV

15、SPI_PORT0);/*禁止从选抒弓I脚:sso*/DrvSPI_ClrSS(eDRVSPI_PORT0,eDRVSPI_SS0);ms(2);/*设置从选择引脚:sso*/DrvSPI_SetSS(eDRVSPI_PORT0,eDRVSPI_SS0);/_/*发指令:0x02,页写*/x0=0x02;DrvSPISingleWrite(eDRVSPI_PORT0zx);/*等待空闲*/-while(DrvSPI_IsBusy(eDRVSPI_PORT0);/*发送位宽为724bits*/一DrvSPI_SetBitLength(eDRVSPIMPORT0,24);/*发送:24-bit起始

16、地址*/Add&=0xFFFFFF00;x0=Add;DrvSPISingleWrite(eDRVSPI_PORT0,x);/*等待空闲*/-while(DrvSPI_IsBusy(eDRVSPI_PORT0);/*发送位宽为78bits*/一DrvSPI_SetBitLength(eDRVSPIMPORT0f8);for(i=0;i0xl00;i+)/*发送编程数据*/x0=DBufi;DrvSPISingleWrite(eDRVSP:E_PORT0,x);/*等待空闲*/一while(DrvSPI_IsBusy(eDRVSPI_PORT0);/*禁止从选择引脚:sso*/Page:4DrvSPI_ClrSS(eDRVSPI_PORT0,eDRVSPI_SS0);ENDPage:#

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!