当前位置: 首页 > news >正文

中国水土保持与生态环境建设网站万江专业网站快速排名

中国水土保持与生态环境建设网站,万江专业网站快速排名,购物网站seo搜索引擎前期分析,百度推广登陆后台文章目录 一、Flash的基本读写操作1.1 向芯片中的某个地址#xff08;addr:0x02#xff09;连续写入不定长的数据并读取代码示例读写流程分析函数分析 1.2 向芯片中的某个地址#xff08;addr:0x00#xff09;写入一个数值代码示例#xff1a;读写流程分析 具体的配置接上… 文章目录 一、Flash的基本读写操作1.1 向芯片中的某个地址addr:0x02连续写入不定长的数据并读取代码示例读写流程分析函数分析 1.2 向芯片中的某个地址addr:0x00写入一个数值代码示例读写流程分析 具体的配置接上文STM32-HAL-SPI-读写W25Q128FV-JEDEC ID(1) 为了要进行芯片的读写操作因此要先了解一下芯片的相关读写指令。 芯片相关的读写指令 0x50允许写状态寄存器的命令0x05读状态寄存器命令0x01写状态寄存器命令0x9F读器件JEDEC ID命令0x06写使能命令0x20擦除扇区命令0x03读数据区命令0xC7批量擦除命令0xA5哑命令可以为任意值用于读操作0x01状态寄存器中的正在编程标志WIP) 一、Flash的基本读写操作 本次擦写测试非全片擦写仅仅使用划定大小进行擦写 读写测试地址TEST_ADDR0读写测试划定大小TEST_SIZE4*1024连续擦写起始地址0x02读写一个数值地址0x00 1.1 向芯片中的某个地址addr:0x02连续写入不定长的数据并读取 void falsh_Read_Write_Test(void)向flash芯片写入一串不定长的数据 存储的时候类型都是以字符或者数字 代码示例 void falsh_Read_Write_Test(void) { uint8_t i;uint8_t CMP_Flag 1;uint8_t Tx_Buffer[] HelloWorld; const uint8_t BufferSize sizeof(Tx_Buffer)/sizeof(Tx_Buffer[0]);//要写入的数据长度uint8_t Rx_Buffer[BufferSize];//缓冲区的大小是待定的/*擦除1个扇区 全部写为0xFF 即全部的bit刷为1*/sf_EraseSector(0x00000000); /*可以不写因为后面的sf_WriteBuffer自动写前擦除*//*向目标地址写入数据*/sf_WriteBuffer(Tx_Buffer,0x02,BufferSize);printf(写入的数据为%s 写入数据的大小为%d \r\n, Tx_Buffer,BufferSize);/*读出目标地址的数据*/sf_ReadBuffer(Rx_Buffer,0x02,BufferSize);printf(读出的数据为%s\r\n, Rx_Buffer);/*比较目标地址和待读取地址数据*/for(i0;iBufferSize;i){if(Tx_Buffer[i] ! Rx_Buffer[i]){CMP_Flag 0;break;}}if(CMP_Flag 1)printf(恭喜Falsh芯片读写不定长数据测试成功\r\n);elseprintf(WhatFalsh芯片读写不定长数据测试失败\r\n);HAL_Delay(1000); sfReadTest(); /* 读串行Flash数据并打印出来数据内容 */ }打印出来的数据 [result] FF FF 48 65 6C 6C 6F 57 6F 72 6C 64 00 FF FF FF - FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF - FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ... ... (省略很多的FF)FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF - FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 数据长度: 4096字节, 读耗时: 3ms, 读速度: 1365333 Bytes/s 执行扇区擦写全部擦写为0xFF即将每一个比特位写入1因此可以看到全部都是FF执行写的地址是从0x02开始的因此可以看到第三位的数据才改变后面连续的11字节写入预设的字符串但是最后一位补了\0因为字符数组在最后是自动补0的 读写流程分析 定义一个比较标志CMP_Flag并初始化为1用于比较目标地址和待读取地址数据是否一致。定义一个要写入的字符串 Tx_Buffer并通过 sizeof(Tx_Buffer)/sizeof(Tx_Buffer[0]) 获取其长度 BufferSize。调用 sf_EraseSector 函数对存储器中的指定扇区进行擦除。调用sf_WriteBuffer函数将Tx_Buffer写入存储器的指定地址。调用 sf_ReadBuffer 函数从存储器的指定地址读取数据到 Rx_Buffer。使用 for 循环比较 Tx_Buffer 和 Rx_Buffer 中的数据是否一致如果存在不一致的情况则将 CMP_Flag 置为0。最后根据 CMP_Flag 的值输出测试结果如果一致则输出 “恭喜Falsh芯片读写不定长数据测试成功” 否则输出“WhatFalsh芯片读写不定长数据测试失败”。 函数分析 sf_EraseSector(0x00000000); /*可以不写因为后面的sf_WriteBuffer自动写前擦除*/扇区擦写函数可以一次性擦除4K字节的空间地址为扇区的起始地址一般设置为的倍数如0x0000擦除扇区1 0x2000擦除扇区2。 擦除一个扇区256个字节 sf_WriteBuffer(Tx_Buffer,0x02,BufferSize);连续向空间中的某个地址写入一系列数据的函数这个函数自带擦写功能即在写之前便会自己进行擦写。 按位置连续写入 写入的11个字节数据放大图 sfReadTest(); 读测试函数可以将测试区域按字节打印到终端。 1.2 向芯片中的某个地址addr:0x00写入一个数值 void falsh_Read_Write_OneData_Test(void)向Flash芯片写入一个数值由于Flash的一个字节有8位因此就是存储一个值的范围是0~255 代码示例 void falsh_Read_Write_OneData_Test(void) { #define n 4 //测试用指定一个字节uint8_t WriteData[5] {12,13,14,15,16}; uint8_t ReadData 0; /*擦除扇区*/sf_EraseSector(0x00000000); //要求地址为4的倍数 /*向目标地址写入数据*/sf_WriteBuffer(WriteData[n],0x00,1);printf(写入的数据为%d 写入数据的大小为%d \r\n, WriteData[4],1);/*读出目标地址的数据*/sf_ReadBuffer(ReadData,0x00,1);printf(读出的数据为%d \r\n, ReadData); if(ReadData WriteData[n])printf(恭喜Falsh芯片单个数字读写测试成功\r\n\r\n\r\n);elseprintf(WhatFalsh芯片单个数字读写测试失败\r\n\r\n\r\n);HAL_Delay(1000); sfReadTest(); /* 读串行Flash数据并打印出来数据内容 */ }查看Flash的读写情况 10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF - FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF - FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF... ... (省略很多的FF)FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF - FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 数据长度: 4096字节, 读耗时: 3ms, 读速度: 1365333 Bytes/s执行扇区擦写全部擦写为0xFF即将每一个比特位写入1因此可以看到全部都是FF执行写的地址是从0x00开始的因此可以看到仅仅第一字节的数据改变 读写流程分析 定义一个测试用的字节数 n用于指定待写入的数据。定义一个长度为 5 的 WriteData 数组并将其第 n 个元素赋值为 1213141516。调用 sf_EraseSector 函数对存储器中的指定扇区进行擦除。调用sf_WriteBuffer函数将 WriteData[n] 写入存储器的指定地址。调用 sf_ReadBuffer 函数从存储器的指定地址读取数据到ReadData。比较 ReadData 和WriteData[n]是否相等如果相等则输出“恭喜Falsh芯片单个数字读写测试成功”否则输出“WhatFalsh芯片单个数字读写测试失败”。
http://www.dnsts.com.cn/news/276794.html

相关文章:

  • 学生成绩管理系统 网站建设怎样找到黄页网站
  • 网站底备案号链接代码mstsc做网站
  • wordpress网站域名服务器漯河市建设监理协会网站
  • 重庆网站运营什邡移动网站建设
  • 青岛开发区网站柯林wap建站
  • 各大网站图片青岛新城世纪网站建设公司
  • psd做成网站沈阳php网站
  • 零基础建网站wordpress获取分类目录
  • 网站建设代管推广凡科网站怎么做
  • 网站建设灯网站建设 青岛
  • 网站上面如何加入视频东莞网页设计和网页制作
  • 网站建设公司杭州怎样在凡科免费做网站
  • 广东专业网站建设效果wordpress主题修改头部
  • 网站建设交接函德州建网站
  • 新手用什么框架做网站比较好wordpress 指定 任务
  • 顺昌网站建设wzjseo单页面网站做百度推广效果
  • 如何建立公司网站建议和规则医院网站建设需求分析调研表
  • 青海建设网站价格低定制开发软件产品的税率
  • 深圳网站建设制作开发公司自建网站避免侵权
  • 网站建设培训东莞网站固定通栏代码
  • 肇庆市专注网站建设平台如何用源代码做网站
  • 网站颜色正确搭配实例免费做电子邀请涵的网站
  • 网站服务器购买价格软件开发培训机构费用
  • 做网站需要招什么职位如何快速搭建一个网站
  • 生物商城网站建设巨量算数数据分析入口
  • 建设工程中标查询网站如何登陆建设银行信用卡网站
  • 好一点的网站建设wordpress如何关闭标签功能
  • 手机看网站百度搜索推广登录入口
  • 专门做海外服装购的网站做企业网站需要准备什么
  • 网站开发研究前景 论文谁可以做网站优化排名推广