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

keil中定义全局变量时赋初值问题

天外飞信 2018-11-21 浏览量:2984
想要问一下,keil中定义全局变量时赋初值,这样会不会之后每次重新上电变量的值一样?为什么会一样呢
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 重新端上电之后不光全局变量的值会复位,而是所有RAM里面的存储信息都会清空,所有的变量都是存储在RAM中的,除非你指定变量的存储地址到FLASH中才不会复位,只有存储在FLASH(ROM)和EEPROM中的数据才不会被清空。

    所以不想全局变量复位的话,你可以在每次值变化的时候都将新的值将你的这个值写在EEPROM中或者是FLASH中,这样掉电之后重新上电的话也不会清空数据的

    • 发布于 2018-11-21
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:14
  • 因为每次开机都会有初始化。
    • 发布于2018-11-21
    • 举报
    • 评论 0
    • 2
    • 0

  • 断电了,肯定要重新赋值呀,难不成还存单片机里面嘛
    • 发布于2018-11-21
    • 举报
    • 评论 0
    • 1
    • 0

  • 全局变量赋初值那么开机每次都是一样的
    • 发布于2018-11-21
    • 举报
    • 评论 0
    • 1
    • 0

  • 每次开机,程序都会从main函数开始,所以,之前保存的程序运行数据是不会自动保存的,也就是就全丢了,变量定义的时候如果给了初值,程序执行就会给初值。
    • 发布于2018-11-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 要看你的初值赋在什么地方了,但是默认时是0的,你不赋被值,也是会被赋上的
    • 发布于2018-11-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 重新上电后,系统重新初始话。如果想开机还要保持之前的值,可以把值写入flash,开机后先读flash。
    • 发布于2018-11-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 会一样,因为每次重新上电的时候,单片机都会重新开始执行一遍重新
    • 发布于2018-11-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 对啊,因为全局变量是在内存中存放的,肯定是每次上电都恢复初值。
    • 发布于2018-11-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 全局变量赋初值,那肯定开机的时候那个值是一样的啊
    • 发布于2018-12-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 当然是这样的,上电就会对你的系统重新初始化
    • 发布于2018-12-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 断电后会重新复位你的程序,要重新进行初始化
    • 发布于2018-12-28
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

keil中定义全局变量时赋初值问题