標(biāo)題: keil C語(yǔ)言中static型變量數(shù)值更改后,電子板運(yùn)行異常 [打印本頁(yè)]

作者: yozher    時(shí)間: 2023-4-8 20:06
標(biāo)題: keil C語(yǔ)言中static型變量數(shù)值更改后,電子板運(yùn)行異常
在pwm.h文件中我定義了static u16 definedMod變量,然后分別在main.c和exit.c中使用了了definedMod變量,希望能在exit.c中使用電子板的按鍵更改definedMod的值,從而改變main函數(shù)中電子板的運(yùn)作模式,但實(shí)際上在按下按鍵后,電子板的燈不再按我所希望的模式進(jìn)行運(yùn)作,C語(yǔ)言代碼部分如圖所示


1.png (14.53 KB, 下載次數(shù): 50)

exit.c的中斷函數(shù)

exit.c的中斷函數(shù)

2.png (33.16 KB, 下載次數(shù): 45)

main中的while函數(shù)

main中的while函數(shù)

3.png (3.86 KB, 下載次數(shù): 51)

pwm.h中definedMod的定義

pwm.h中definedMod的定義

作者: Hephaestus    時(shí)間: 2023-4-8 20:33
你搞錯(cuò)了static的意思,全局static是防止其他c文件使用這個(gè)變量用的。

兩個(gè)c文件引用了pwm.h中definedMod的定義,這兩個(gè)文件都有了definedMod這個(gè)兩個(gè)變量,但這兩個(gè)變量是兩個(gè)完全不同的變量,各用各的。

你貼出來(lái)的pwm.h的內(nèi)容實(shí)在是太糟糕了,從來(lái)沒(méi)見(jiàn)過(guò)這么離譜的代碼。

想要兩個(gè)c文件使用同一個(gè)變量,其中一個(gè)正常定義,另一個(gè)聲明為extern變量來(lái)使用。絕對(duì)不要加static,只要加了static就一定是錯(cuò)誤的。
作者: yozher    時(shí)間: 2023-4-8 23:56
Hephaestus 發(fā)表于 2023-4-8 20:33
你搞錯(cuò)了static的意思,全局static是防止其他c文件使用這個(gè)變量用的。

兩個(gè)c文件引用了pwm.h中definedMo ...

感謝!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1