关于程序中参数传递的问题,请大家知道一下小弟。谢谢

2019-08-13 19:50发布

我在主程序中通过rct6的ad采集数据,采集到的数据传给e,我想通过外部中断控制按键打印e的值。
定义为:
                   extern float e,D,D1,D2;
主程序中:
                 adcx2=Get_Adc2(ADC_Channel_3);  //获取ADC的值
                D2=(float)adcx2*(3.3/4096);     //将获取的值转换为电压值

                e=(adcx2+(0.01*D2))/(0.00525);

子程序中:
                   void EXTI15_10_IRQHandler(void)
                  {
                       delay_ms(10);    //消抖                         
                        if(KEY1==0)       

                        printf(" e=%f",e);
                 }
程序编译报错,说子程序中e的值未定义。请各位大神帮助一下,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
HR GoGo
1楼-- · 2019-08-14 15:56
dozm 发表于 2017-10-16 10:26
用标志位,按键对实时性没什么要求。

谢谢建议,找到问题了。
624467649
2楼-- · 2019-08-14 17:26
 精彩回答 2  元偷偷看……
lin993586486
3楼-- · 2019-08-14 21:19
extern float e,D,D1,D2;只是声明,如果要在外部.c引用,需要先定义float e,D,D1,D2后再声明为全局变量 extern float e,D,D1,D2;这样才能被其他.c文件引用。
HR GoGo
4楼-- · 2019-08-14 23:18
624467649 发表于 2017-10-16 10:30
是不是float e的地方是函数内部,是局部变量了?放外部试试

嗯嗯  是的 谢谢你 解决了
HR GoGo
5楼-- · 2019-08-15 03:51
lin993586486 发表于 2017-10-16 10:31
extern float e,D,D1,D2;只是声明,如果要在外部.c引用,需要先定义float e,D,D1,D2后再声明为全局变量 ex ...

明白了 谢谢

一周热门 更多>