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

想定义一个二维数组在单片机的内部flash里,需要怎么声明

那是我的最爱 2015-12-16 浏览量:2707
这个数组需要在程序里存入数据,读出和清除数据,请明白人指点
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 前面加  const 即可,比如const unsigned char code shuzu[6]={0,1,2,3,4,5},定义到flash,只能读,不能写。

    如果不加const,就是定义到ram中,可读写。

    • 发布于 2015-12-16
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:19
  • 看二维数组大小,小的话加上code后,数组中的数不能改变,不加code的话只有128字节的空间,最多能定义128个char的变量,data空间不够用的话可以用Idata和Xdata,在数组前加上Idata或Xdata,例如unsigned char xdata shuzu[100],data区中的变量访问速度最快,Idata和Xdata中的变量访问较慢。说的如有错误还望谅解


    • 发布于2015-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个驱动程序是对单片机本身的flash操作,还是对外扩的flash操作呢

    • 发布于2015-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  •  开发工具 Keil ,单片机为 C8051 
    
    

    对于单个变量,可以用_at_来定位,如:char code 变量名 _at_  FLASH的地址。

    数组也可以 如:unsigned char code table1[512] _at_ 0x400

    • 发布于2015-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 你是要掉电存储还是怎么滴?运行过程中存储这样就没问题啊,我一直都是这样用的……
    • 发布于2015-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 我的单片机是ARM  M0 的和51的单片机还是有区别的,这个不适用,code用不了,但还是感谢版主
    • 发布于2015-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 就是程序运行的时候可以存储数据,读写数据,删除数据。断点再开机的时候这些数据还在能读写就好

    • 发布于2015-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果是想在flash中读写数组数据,任何单片机都不能直接通过数组读写,需要通过flash的读写指令和寄存器操作实现。所以你的这个数组直接flash读写是不可能实现的,只能通过flash操作才可以,而且这个单片机必须也得支持flash自编程(比如stm32)。
    • 发布于2015-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • lpc1768支持吗,这样的话,把数组的数据写到flash里,然后读取的时候读出放到数组里可以的话,我需要做哪些操作
    • 发布于2015-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以,你去查一下FLASH模拟eeprom,这个可以实现。
    • 发布于2015-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 掉电存储的话,其他单片机我没用过,用过STC12C5A60S2,写到EEPROM就好了……
    • 发布于2015-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • ST系列 的可以通过写内部flash 函数和读取功能实现你的需求吧
    • 发布于2015-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 没有操作IO口,当然是内部的
    • 发布于2015-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 关键是二维数组怎么实现,不是普通数组,待高手现身!
    • 发布于2015-12-17
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

想定义一个二维数组在单片机的内部flash里,需要怎么声明