标题: keil C语言中static型变量数值更改后,电子板运行异常 [打印本页]

作者: yozher    时间: 2023-4-8 20:06
标题: keil C语言中static型变量数值更改后,电子板运行异常
在pwm.h文件中我定义了static u16 definedMod变量,然后分别在main.c和exit.c中使用了了definedMod变量,希望能在exit.c中使用电子板的按键更改definedMod的值,从而改变main函数中电子板的运作模式,但实际上在按下按键后,电子板的灯不再按我所希望的模式进行运作,C语言代码部分如图所示


1.png (14.53 KB, 下载次数: 50)

exit.c的中断函数

exit.c的中断函数

2.png (33.16 KB, 下载次数: 45)

main中的while函数

main中的while函数

3.png (3.86 KB, 下载次数: 51)

pwm.h中definedMod的定义

pwm.h中definedMod的定义

作者: Hephaestus    时间: 2023-4-8 20:33
你搞错了static的意思,全局static是防止其他c文件使用这个变量用的。

两个c文件引用了pwm.h中definedMod的定义,这两个文件都有了definedMod这个两个变量,但这两个变量是两个完全不同的变量,各用各的。

你贴出来的pwm.h的内容实在是太糟糕了,从来没见过这么离谱的代码。

想要两个c文件使用同一个变量,其中一个正常定义,另一个声明为extern变量来使用。绝对不要加static,只要加了static就一定是错误的。
作者: yozher    时间: 2023-4-8 23:56
Hephaestus 发表于 2023-4-8 20:33
你搞错了static的意思,全局static是防止其他c文件使用这个变量用的。

两个c文件引用了pwm.h中definedMo ...

感谢!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1