找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1016|回复: 2
打印 上一主题 下一主题
收起左侧

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的定义
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2023-4-8 20:33 | 只看该作者
你搞错了static的意思,全局static是防止其他c文件使用这个变量用的。

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

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

想要两个c文件使用同一个变量,其中一个正常定义,另一个声明为extern变量来使用。绝对不要加static,只要加了static就一定是错误的。
回复

使用道具 举报

板凳
ID:1070536 发表于 2023-4-8 23:56 | 只看该作者
Hephaestus 发表于 2023-4-8 20:33
你搞错了static的意思,全局static是防止其他c文件使用这个变量用的。

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

感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表