找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1035|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

keil C語(yǔ)言中static型變量數(shù)值更改后,電子板運(yùn)行異常

[復(fù)制鏈接]
跳轉(zhuǎ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的定義
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:883242 發(fā)表于 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ò)誤的。
回復(fù)

使用道具 舉報(bào)

板凳
ID:1070536 發(fā)表于 2023-4-8 23:56 | 只看該作者
Hephaestus 發(fā)表于 2023-4-8 20:33
你搞錯(cuò)了static的意思,全局static是防止其他c文件使用這個(gè)變量用的。

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

感謝!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表