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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 校园卡不给销户怎么办 吃腻了难受恶心怎么办 深夜吃撑了难受怎么办 吃撑了肚子难受怎么办 喝水喝撑了难受怎么办 晚饭吃撑了难受怎么办 吃多了肚子难受怎么办 电信4g信号变3g怎么办 五险交了3月离职怎么办 怎么办工行携程灵通卡 易买得消费卡怎么办 贷款回执单丢了怎么办 医院挂号过号了怎么办 脑子里总是胡思乱想睡不着怎么办 被妹夫给睡了怎么办 被妹夫抱了下怎么办 最里面牙齿烂了怎么办 老公有外遇不承认怎么办 对老公疑心太重怎么办 当你发现老公出轨怎么办 发现自己老婆出轨了怎么办 笔袋密码忘记了怎么办 海关锁密码忘了怎么办 800度近视献了血怎么办 当老公有了外遇妻子该怎么办 妻子有外遇我该怎么办 喜欢拔粗的头发怎么办 小腿长水泡很痒怎么办 脚丫有水泡又痒怎么办 脚上起水泡怎么办很疼 脚上反复长水泡怎么办 高考没考上二本怎么办 车子被扣了60分怎么办 科目三挂了三次怎么办 装修到一半跑了怎么办 13岁自慰被发现怎么办 应用锁密码忘了怎么办 3d缺少dll文件怎么办 真三国无双6闪退怎么办 孙策死了大乔怎么办 30周羊水偏多怎么办