• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

单片机存取结构体

视觉℡ 2017-11-13 浏览量:1023

单片机如何存取结构体,存到FLASH中  EEPROM   

目前使用的STM32

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • struct sensor_rom_t
    {
        unsigned int addr;    
        unsigned char altimes;
        unsigned char exist;//设置的状态
        unsigned char ctr;
        unsigned char relay;
    } ;
    union cf_page
    {
        struct sensor_rom_t s[ALMMAX];
        unsigned char str[sizeof(struct sensor_rom_t)*ALMMAX];        
    } cf; 

    你自己体会下,把下面的str写到eeprom里就可以了

    联合体内嵌结构体,结构体和数组占用同一块内存

    • 发布于 2017-11-13
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了 :557是罗彻斯特自定义的,见衔接该型号下面一串内部串号557https://www.nxp.com/part/SPC5607BF1MLU6#/ 回复

其他答案 数量:12
  • 结构体只是一种数据结构而已,你存取的时候都是通过基址加变量类型偏移进行的
    • 发布于2017-11-13
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :可以替代 回复

  • memcpy 

    如果不会,那就按结构体中的变量一个一个的存

    • 发布于2017-11-13
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :已Q 回复

  •        结构体/类也是一种变量,不过是变量的集合+变量带有的公共函数而已,存储方式跟多个普通变量没有太大区别。

    • 发布于2017-11-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 结构体也是有大小的,可以按字节、按字、按双字进行大小确定,再写入EEPROM中啊。
    比如写入以字节为单位的flash中,结构体中的int占用4个字节,char占用一个字节。
    读取的时候,先读取4个字节,再重组成一个int数据。
    • 发布于2017-11-13
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :1.封装: SMD,6.3x5.7mm 品牌: lelon(台湾立隆) 型号: VZH470M1VTR-0606 (VE系列的没货) 2.封装: SMD,8x10mm 品牌: lelon(台湾立隆) 型号: VZH101M1ETR-0810(前台都没货) 回复

  • 平时我们用数据变量来存储和读取,结构体和变量的存储方式一样的
    • 发布于2017-11-14
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :M不是原厂型号的尾缀 回复

  • 按地址直接存储就好了,HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data),就这函数,可以看看st官方cube包的例程。
    • 发布于2017-11-14
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :https://download.datasheets.com/pdfs2/2020/7/5/12/33/3/670468/ghiele_/manual/pgurl_6752212087107041.pdf 回复

  • 结构体也是由16进制数据组成的,也可以分成几他字节,所以存储也可以按字节进行存储。
    • 发布于2017-11-14
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :错料 回复

  • 把结构体变量的地址强制转换为char *类型的指针,然后按照字节顺序依次存储。
    • 发布于2017-11-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以使用sizeof看看结构体的大小,再相应的存储
    • 发布于2017-11-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 存储数据都是按块写入的,因此这里可以将数据结构分为若干个字节写入
    • 发布于2017-11-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 单片机存取结构体与编译器和大小端有关,使用结构体就可以按指针将内存里一块数据用简短的指令写入flash
    • 发布于2017-11-19
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :封装: 3224W 品牌: BOURNS 型号: 3224W-1-204E 回复

  • 结构体也仅仅是一种数据组成,你只需要知道首地址和数据宽度就可以存取了,只是解析应用(数据填写)过程和标准的有区别而已。
    • 发布于2017-11-28
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :http://www.umw-ic.com/UploadFiles/img/2018/7/12/b97544b9-8f0b-43f3-9f58-3dadac7685a9.pdf 回复

相关问题

问题达人换一批

单片机存取结构体