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

STM32F100单片机,定义全局变量后,没有操作,变量变化

459a6c7a68d638d3 2020-01-20 浏览量:1362
用的IAR。各位有没有出现过这种现象
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:6
  • 有可能是操作其它变量的时候,引发了内存地址越界,导致这个变量发生了变化,具体可以看下堆栈分析

  • 内存操作错误了吧。 或者指针错了吧。

  • 你的这个变量正确初始化了吗?

    虽然你程序中直接没有修改过,但可能会被其它部分通过指针操作、地址操作等间接修改的。

  • 根据你自己的程序,逐步排查,可以试着一段一段的屏蔽程序,看看在哪一段程序位置出现了变化,然后才能确定

  • 如果你的变量是局部变量或者一个.C的文件,那么编译器会把这个变量分配给一个寄存器,比如R1,这个变量可能会在执行其他程序的时候被占用过,所以你看到的变化是其他程序用完这个寄存器以后的数,你可以试试在这个变量用之前把这个变量赋值,然后在这一段程序里运行看看变量的变化。

  • 用调试模式看一下是不是进入错误中断里面了,全局变量不会销毁所以一般不会有问题的,还有就是f100不能用f103工程的启动文件和宏定义,如果是f103改f100需要修改启动文件还有宏定义

相关问题

问题达人换一批

STM32F100单片机,定义全局变量后,没有操作,变量变化