flash存储程序
来源:互联网 发布:扫描仪识别软件 编辑:程序博客网 时间:2024/06/07 07:12
#define CS_L //拉低CS的宏 自己定义 以下以此类推#define SCLK_L #define DO_L #define DIO_L #define CS_H //拉高CS的宏 自己定义 以下以此类推#define SCLK_H #define DO_H#define DIO_H#define DO_Read 1 //读DO的宏void SPI_Write(int data) //用SPI发送8位数据{ int i; for(i=0;i<8;i++) { SCLK_L; if(data&0x80) DIO_H; else DIO_L; SCLK_H; data<<=1;}} int SPI_Read(void) //SPI接受8位数据{ int buff=0x00,i; for(i=0;i<8;i++) { SCLK_L; buff<<=1; if(DO_Read)buff=0x01; SCLK_H; } return buff;}void Write_Enable(void) //写使能函数 对W25Q16进行写操作之前要进行这一步操作{ CS_L; SPI_Write(0x06); CS_H;}void Write_Disable(void) //写禁止函数{ CS_L; SPI_Write(0x04); CS_H;}int W25Q16_BUSY(void) //判断W25Q16是否繁忙函数 繁忙则返回1{ int flag; CS_L; SPI_Write(0x05); flag=SPI_Read(); CS_H; flag&=0x01; return flag;}void W25Q16_Write(int address,int *data,int j)//向W25Q16写入 j个8位数据 第一个参数是 W25Q16的首地址 第二个参数是 内存的首地址{ int i; while(W25Q16_BUSY());//如果芯片繁忙就等在这里 Write_Enable();//要先写入允许命令 CS_L; SPI_Write(0x02); SPI_Write(address>>16); SPI_Write(address>>8); SPI_Write(address); for(i=0;i<j;i++) { SPI_Write(*(data+i)); } CS_H;}void W25Q16_Read(int address,int *data,int j)//从W25Q16中的address地址上读取 j个字节的数据保存到 以data为首地址的内存中{ int i; while(W25Q16_BUSY()); CS_L; SPI_Write(0x03); SPI_Write(address>>16); SPI_Write(address>>8); SPI_Write(address); for(i=0;i<8;i++) { *(data+i)=SPI_Read(); } CS_H;} void W25q16_Erasure()//擦除整个芯片的数据 由于芯片中的数据只能从1写到0所以 写了一次以后就不能写了 要先擦除 擦除成功后的每个字节都是 255{ Write_Enable(); SPI_Write(0x00); Write_Enable(); while(W25Q16_BUSY()); CS_L; SPI_Write(0xc7); CS_H; while(W25Q16_BUSY());}int main(void){int j=2;int data[2]={0x01,0x02};int address;while(1){Write_Enable();W25Q16_Write(address,data,j);printf("%d\n",data);W25Q16_Read(address,data,j);}}
0 0
- flash存储程序
- Flash程序
- flash存储原理
- 存储(ROM RAM FLASH)
- NAND Flash存储结构
- 嵌入式--Nand Flash存储
- Flash存储W25Q16芯片
- Flash存储技术总结
- GCCAVR(AVR Studio)数据存储在程序存储器(flash)空间的定义
- GCCAVR(AVR Studio)数据存储在程序存储器(flash)空间的定义
- FLASH编程与改变程序(代码)存储地址的问题
- Nand-Flash/Nor-Flash存储模块设计
- Nand-Flash/Nor-Flash存储模块设计
- Nand-Flash/Nor-Flash存储模块设计
- Nand-Flash/Nor-Flash存储模块设计
- Serial Flash Loader读写Flash存储芯片
- MSP430 Flash编程程序
- Flash 抽奖程序制作
- 微信小程序canvas画图功能实现
- 我的第一篇博客&json手动转为对应的javabean
- ElasticSearch的JAVA 客户端(JAVA API)
- linux常用命令学习
- 正向代理和反向代理
- flash存储程序
- 系统&&容器docker管理工具【cockpit】
- Java的多线程机制系列:(二)缓存一致性和CAS
- 好久没有写博客了
- Java学习篇之SQL语句操作数据表中的数据(查)
- 针对eclipse调式代码时打断点出现斜杠的解决方法
- C#批量插入大数据到SQL server
- android内容提供者contentProvider_短信插入
- Spring 初探(七)(Spring定时任务基础)