



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/SPI初始化部分:void SPI2_Init(void) RCC-APB2ENR|=1APB1ENR|=1CRH&=0X000FFFFF; GPIOB-CRH|=0XBBB00000;/PB13/14/15复用 GPIOB-ODR|=0X7CR1|=0CR1|=1CR1|=1CR1|=1CR1|=0CR1|=1CR1|=1CR1|=7CR1|=0CR1|=1SR&1=0XFFFE)return 0; /超时退出 SPI2-DR=TxData; /发送一个byte retry=0;while(SPI2-SR&1=0XFFFE)return 0;/超时退出 return SPI2-DR; /返回收到的数据 /以下对存储器的操作都是针对AT45DB161D的,/AT45DB161D:16Mbit=2M字节/void FLASH_Init(void)RCC-APB2ENR|=1APB2ENR|=1CRH&=0XFFF0FFFF; GPIOB-CRH|=0X00030000;/PB12 推挽 GPIOB-ODR|=1CRH&=0XFFFFFFF0; GPIOG-CRH|=0X00000003;/PG8 推挽 GPIOG-ODR|=18; /PG8 上拉SPI2_Init(); /初始化SPI2 /读取AT45DB161D的状态寄存器 (查看数据手册P23)/返回:读取的状态/bit7bit6bit5bit4bit3bit2bit1bit0/RDY/BUSYCOMP1011PROTECTPAGESIZEu8 Flash_ReadStatus(void)u8 rd;FLASH_CS_L; /使能操作 SPI2_ReadWriteByte(STATUS_REG_READ);/发送 读状态寄存器命令D7H”rd=SPI2_ReadWriteByte(0XFF); /读回状态FLASH_CS_H; /失能操作return rd;/FLASH判忙函数/不断读取外部FLASH的状态寄存器的bit7为判断是否为0/bit7:0,忙;1,不忙static void Flash_CheckBusy(void)u8 st;st=SPI2_ReadWriteByte(0XFF);while( (st&BUSY_BIT_MASK)= BUSY_STATUS )st=SPI2_ReadWriteByte(0XFF);/读FLASH函数,调用者需保证所读取的数据不能超过范围/page:指定页地址 (04095页)/offset:页内偏移地址 (0527字节)/nBytes:读取的字节数/*data:读到的数组首地址/-连续读到达一个页的结尾时,芯片会从下个页的开头继续读取,/-页间的跨越是没有延时的。当主存储器的最后一个位被读出后,/-芯片会自动返回到第一页的开头继续读取。与页间跨越相同的,/-从存储器阵列结尾转到开头也是无延时的。void Flash_Read(u16 page,u16 offset,u16 nBytes,u8 *data)u32 addr; /绝对地址变量,注意528字节每页与512字节每页的绝对地址计算不一样,/这里用默认(264字节每页模式)addr=(u32)page16) ); /发送地址,从高到低SPI2_ReadWriteByte( (u8)(addr8) );SPI2_ReadWriteByte( (u8)(addr) );SPI2_ReadWriteByte( 0 ); /a dummy bytewhile( (nBytes-)0 )*data+=SPI2_ReadWriteByte(0XFF);/循环读取字节 FLASH_CS_H;Flash_CheckBusy();/写FLASH函数,调用者需保证所写入的数据不能超过范围/page:指定页地址 (04095页) 整页直接写入主存储器/*data:待写入的数组首地址void Flash_PageWrite(u16 page,u8 *data)u16 i;u32 addr=0;Flash_CheckBusy();/判忙addr=( (u32)page16) );SPI2_ReadWriteByte( (u8)(addr8) );SPI2_ReadWriteByte( (u8)(addr) );for(i=0;i8) );SPI2_ReadWriteByte( (u8)offset );while( (nBytes-)0 )SPI2_ReadWriteByte( *data+ ); FLASH_CS_H;Flash_CheckBusy();/从BUFF1写入到主存储器函数,BUFF1刚好是1页大小的缓存/page:页地址(04095)void Flash_BufToMemory(u16 page)u32 addr=0;addr=(u32)page16) );SPI2_ReadWriteByte( (u8)(addr8) );SPI2_ReadWriteByte( (u8)(addr) ); FLASH_CS_H;Flash_CheckBusy();/页擦除函数,整页进行擦除/page:页地址(04095)void Flash_PageErase(u16 pa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 菌群移植生物标志物-第1篇-洞察及研究
- 油墨厂搅拌桨磨损细则
- 江苏省苏州市昆山市秀峰中学2025-2026学年上学期七年级9月月考数学卷(含答案)
- 2024-2025学年湖南省张家界市高二(下)期末物理试卷(含答案)
- 印刷厂油墨存储管理规定
- 手受伤后安全培训课件
- 社区结构预测-洞察及研究
- 手势小星星课件
- 中国银行新员工思想汇报模板图文
- 咨询工程师《项目决策分析与评价》考试题(附答案)
- ISO 22000-2018食品质量管理体系-食品链中各类组织的要求(2023-雷泽佳译)
- 卡巴斯基应急响应指南
- 理财规划大赛优秀作品范例(一)
- 2023年四川能投筠连电力招聘笔试参考题库附带答案详解
- 护理管理组织结构与设计
- 静配中心清洁消毒考核试题
- 一级烟草专卖管理师理论考试题库(含答案)
- 小学数学《分数除法》50道应用题包含答案
- 碳捕集、利用与封存技术课件
- 化工试生产总结报告
- 复句与单句的辨析课件
评论
0/150
提交评论