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

杭州市住房与城乡建设部网站单页式网站模板

杭州市住房与城乡建设部网站,单页式网站模板,wordpress 登录后查看,开发板是干什么用的AT24C64存储空间大小为64Kbit#xff0c;也就是65536bit#xff0c;能存放65536/8 8192Byte数据。 写数据 1、按字节写 发送了起始信号后#xff0c;第一部分要先发送从机地址#xff0c;第二部分发送访问的存储地址#xff0c;第三部分发送写入的一字节数据。 从机地址…AT24C64存储空间大小为64Kbit也就是65536bit能存放65536/8 8192Byte数据。 写数据 1、按字节写 发送了起始信号后第一部分要先发送从机地址第二部分发送访问的存储地址第三部分发送写入的一字节数据。 从机地址按硬件上EEPROM芯片的A2 A1 A0引脚接线来定义。 存储地址可以看到由13位组成最左三位是无意义的位因为按照上面所说AT24C64可以存储8192个字节的数据实际以0为起始的话就只有8191个数据8191换算成二进制为00011111 11111111可以看出刚好能由13位表示EEPROM内部数据的存储地址。 void AT24C64_W(uint16_t Address, uint8_t Data) {I2C_Start();I2C_SendByte(AT24C64_Write);uint8_t ack1 I2C_ReceiveAck();I2C_SendByte(Address8);I2C_ReceiveAck();I2C_SendByte(Address);I2C_ReceiveAck();I2C_SendByte(Data);uint8_t ack2 I2C_ReceiveAck();I2C_Stop(); } 2、按页写 与按字节写入相比页写入在第一个字节写完后再写了x个数据因为AT24C64每页32个字节所以这里的x 3也就是再写3byte后结束按页写入。 需要注意的是每写一个Byte的数据页内地址1红线画出来的地方表示当前页写满后会重新覆盖掉这一页前面的数据而不会自动跳转到下一页。 自己写的简易版按页写数据 void AT24C64_W_Page(uint16_t Address, uint8_t *Data) {uint8_t i;I2C_Start();I2C_SendByte(AT24C64_Write);uint8_t ack1 I2C_ReceiveAck();I2C_SendByte(Address8);I2C_ReceiveAck();I2C_SendByte(Address);I2C_ReceiveAck();for (i 0; i 32; i){I2C_SendByte(Data[i]);I2C_ReceiveAck();}I2C_Stop(); } ai升级版按页写数据 HAL库要求传入 (7位地址 1)即 0x50 1 0xA0。底层行为HAL库会在总线上发出正确的8位地址0xA0写0xA1读。推荐实践使用 HAL_I2C_Mem_Read/Write 简化操作避免手动处理方向位。 #define AT24C64_ADDR 0x50 // I2C设备地址/*** brief 向AT24C64写入一页数据最多32字节* param page_num 页号0~255共256页* param offset 页内偏移0~31* param data 待写入数据指针* param len 数据长度不超过32-offset* return HAL_OK成功其他失败*/ HAL_StatusTypeDef AT24C64_PageWrite(uint8_t page_num, uint8_t offset, uint8_t *data, uint8_t len) {// 参数检查if (page_num 255 || offset 31 || len (32 - offset)) {return HAL_ERROR;}// 计算16位EEPROM地址高5位为页号低8位为页内地址uint16_t mem_addr (page_num 5) | offset;uint8_t addr_buffer[2] { (uint8_t)(mem_addr 8), (uint8_t)(mem_addr 0xFF) };// 组合I2C传输数据地址 数据uint8_t i2c_buffer[2 32]; // 地址2字节 数据最多32字节memcpy(i2c_buffer, addr_buffer, 2);memcpy(i2c_buffer 2, data, len);// 启动I2C传输HAL_StatusTypeDef status HAL_I2C_Master_Transmit(hi2c1, // I2C句柄需提前初始化AT24C64_ADDR 1, // 设备地址左移1位HAL库要求i2c_buffer, // 数据缓冲区2 len, // 总长度地址数据HAL_MAX_DELAY // 超时时间);// 等待写入完成AT24C64需要约5ms内部写入周期if (status HAL_OK) {HAL_Delay(5);}return status; } uint8_t data[32] {0x01, 0x02, 0x20}; // 3字节数据HAL_StatusTypeDef status AT24C64_PageWrite(1, 3, data, 3); // 写入第1页偏移3,地址为0x35 读数据 1.当前地址读取数据。 2.选定地址读取数据 。 3.连续读取数据。 void AT24C64_R(uint16_t Address, uint8_t *PBUff, uint16_t datalen) {uint8_t i;I2C_Start();I2C_SendByte(AT24C64_Write);I2C_ReceiveAck();I2C_SendByte(Address8);I2C_ReceiveAck();I2C_SendByte(Address);uint8_t ack4 I2C_ReceiveAck();I2C_Start();I2C_SendByte(AT24C64_Read);uint8_t ack3 I2C_ReceiveAck();for (i 0; i datalen - 1; i){PBUff[i] I2C_ReceiveByte();I2C_Ack();}PBUff[datalen - 1] I2C_ReceiveByte();I2C_NAck();I2C_Stop(); } 注意写完数据建议等待5ms等待数据写入完成 AT24CXXX容量 总容量(Byte容量) 页数 × 页内字节单元数。 AT24CXXXbit容量Byte容量页数页内字节单元数AT24C01    1Kbit128Byte16页 8ByteAT24C02    2Kbit    256Byte32页 8ByteAT24C04    4Kbit    512Byte32页16ByteAT24C08    8Kbit    1024Byte64页 16ByteAT24C16    16Kbit2048Byte128页  16ByteAT24C32    32Kbit    4096Byte128页  32ByteAT24C6464Kbit8192Byte256页32ByteAT24C128    128Kbit    16384Byte256页64ByteAT24C256    256Kbit    32768Byte512页 64Byte 参考文章
http://www.zqtcl.cn/news/836316/

相关文章:

  • 石家庄网站建设远策科技网站建设公司人员配备
  • 手机怎么建网站链接专门做鞋子的网站吗
  • 网站建设设计作品怎么写网站建设 网站内容 采集
  • 自己做网站nas如何做网站大图片
  • 网站优化定做嘉兴模板建站代理
  • 南宁做网站比较好的公司有哪些花乡科技园区网站建设
  • 网站注册平台怎么注册申请空间 建立网站吗
  • 汕头住房与城乡建设网站做网站视频 上传到哪儿
  • 东莞网站关键词优化福建个人网站备案
  • 国外获奖flash网站泉州网站制作专业
  • 万网域名注册后如何做网站教学上海app开发和制作公司
  • 恩施网站建设公司个人网站怎么制作成图片
  • 泸州高端网站建设公司上海企业网站
  • wordpress 建站 知乎济南全包圆装修400电话
  • 织梦建设两个网站 视频影视公司宣传片
  • 北京小企业网站建设那个做网站好
  • 怎样用模块做网站深圳网站建设制作厂家
  • 网站项目中的工作流程网站建设社区
  • 建设厅网站查询电工证件提供网站建设公司哪家好
  • 免费网站软件下载安装称多网站建设
  • 网站客户续费深圳福田地图
  • 连云港做电商网站的公司营销公司网站模板
  • 沈阳企业网站优化排名方案富阳做网站公司
  • 企业网站优化报价自己做个网站怎么赚钱
  • 做ui的网站有哪些网站建设订单模板
  • 重庆企业网站优化wordpress 接收询盘
  • 小米4路由器可以做网站嘛杭州淘宝代运营公司十大排名
  • 枞阳做网站的百度搜索入口
  • 网站建设提议徐州网站建设方案咨询
  • 昆明高端网站建设专门做游轮的网站