我在main.c里定义了一个变量A,然后在fun.c里用extern声明了这个变量,fun.c的一个函数fun24()在一个while循环下使用了变量A,在中断函数中,触发中断,则A加1,然后如果我在int main()里直接调用fun24()的话,液晶显示的A的数值在实时变化,但是如果不在int main()里直接调用fun24()而是先调用fun0(),再通过菜单调用fun24()(就是进入fun24()函数的写的界面)A的值就不会实时变化了,如果退出fun24的界面,再通过菜单进入,A的值会变化,但不是实时变化,就是保持一个值不变,不知道是什么原因了,我觉得逻辑上来看应该不会出现这样的问题呀?请求大家帮忙,谢谢。
此帖出自
小平头技术问答
extern volatile ulong Pulse_N1;//声明
类似的全局变量在定义和声明时都加上volatile ,防止被编译优化,再试试。
一周热门 更多>