关于中断服务函数中的定义变量问题 跪求大神解答

2019-07-20 22:44发布

void TIM5_IRQHandler(void)
{                     
        u8  TIM5CH1_CAPTURE_STA=0;                                           
        u32        TIM5CH1_CAPTURE_VAL;
........
}
把变量定义在中断函数的内部 编译会出错 (main.c(36): error:  #20: identifier "TIM5CH1_CAPTURE_VAL" is undefined 主函数中出现TIM5CH1_CAPTURE_VAL没有被定义)

u8  TIM5CH1_CAPTURE_STA=0;                                           
u32        TIM5CH1_CAPTURE_VAL;
void TIM5_IRQHandler(void)
{
......                    
........
}
把变量定义在中断函数的外部 这样编译才不会出错 我觉得把变量定义在中断函数的外部和把变量定义在内部都是一样的 我就不明白为什么会出错呢?求大神解答 谢谢

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
ianhom
1楼-- · 2019-07-21 00:37
 精彩回答 2  元偷偷看……
特朗姆斯
2楼-- · 2019-07-21 06:00
 精彩回答 2  元偷偷看……
小野叔叔
3楼-- · 2019-07-21 09:30
ianhom 发表于 2016-4-22 11:46
定义在函数内部属于局部变量,作用域仅限定在函数内部,函数以外或其他文件都是不能通过函数名来访问的。一 ...

谢谢 我把这个忘了
小野叔叔
4楼-- · 2019-07-21 10:59
特朗姆斯 发表于 2016-4-22 11:04
中断函数的本质依旧是一个函数,你把变量定义在中断函数内部那这个变量就变成局部变量了,你的main函数当然 ...

谢谢 我把这个东西忘了

一周热门 更多>