OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4320|回复: 5

全局变量无法修改

[复制链接]

27

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
484
金钱
484
注册时间
2014-12-25
在线时间
83 小时
发表于 2015-5-3 12:29:11 | 显示全部楼层 |阅读模式
5金钱
我定义了 一个全局变量

volatile uint8_t TOUCH_FLAG=0; 

用来表示触摸屏被按下的标记

void EXTI4_IRQHandler(void)
{
    if(EXTI_GetITStatus(EXTI_Line4)==SET)
    {
        EXTI_ClearITPendingBit(EXTI_Line4);


        TOUCH_FLAG=1;
    }
}

在主函数里面
if(TOUCH_FLAG)
{
    TOUCH_FLAG=0;  //这条代码好像 不能被执行一样 中断函数只执行了一次 TOUCH_FLAG 就永远都保持是 1了
}

我以前写红外遥控解码的时候也出现过类似的问题 , 请问大家 这是怎么回事?

最佳答案

查看完整内容[请看2#楼]

我把代码 改成 在 和XPT2046通信的时候关闭中断  通信完又打开中断 这样的话就没问题了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

27

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
484
金钱
484
注册时间
2014-12-25
在线时间
83 小时
 楼主| 发表于 2015-5-3 12:29:12 | 显示全部楼层
我把代码 改成 在 和XPT2046通信的时候关闭中断  通信完又打开中断 这样的话就没问题了
回复

使用道具 举报

44

主题

225

帖子

0

精华

高级会员

Rank: 4

积分
660
金钱
660
注册时间
2013-11-22
在线时间
131 小时
发表于 2015-5-3 12:54:34 | 显示全部楼层
你在中断里面搞个全局变量加加,先看看触发了几次中断
回复

使用道具 举报

27

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
484
金钱
484
注册时间
2014-12-25
在线时间
83 小时
 楼主| 发表于 2015-5-3 13:35:31 | 显示全部楼层
回复【2楼】zhp:
---------------------------------
我试了. 看来我错了 我以为那个标志没有被清零  原来一直处于中断的状态.  可是触摸屏不是 按下的时候才有 下降沿吗?  怎么会一直中断?
回复

使用道具 举报

44

主题

225

帖子

0

精华

高级会员

Rank: 4

积分
660
金钱
660
注册时间
2013-11-22
在线时间
131 小时
发表于 2015-5-3 16:36:01 | 显示全部楼层
不会吧,你设置的什么中断方式?
回复

使用道具 举报

109

主题

1606

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2222
金钱
2222
注册时间
2011-12-15
在线时间
37 小时
发表于 2015-5-4 17:32:30 | 显示全部楼层
你又清中断过程吗?
专业制作STM32 物联网通信模块板,模块交流群:369840039。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 15:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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