OpenEdv-开源电子网

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

关于定时器输入捕获实验的问题

[复制链接]

43

主题

87

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-9-16
在线时间
41 小时
发表于 2017-9-2 16:11:32 | 显示全部楼层 |阅读模式
1金钱
u8 TIM5CH1_Capture_State=0;
u32 TIM5CH1_Capture_Value;

void TIM5_IRQHandler(void)
{
        if((TIM5CH1_Capture_State&0X80)==0)
        {
           if(TIM_GetITStatus(TIM5,TIM_IT_Update)!= RESET)
                  {
                   if(TIM5CH1_Capture_State&0X40)
                         {
                           if((TIM5CH1_Capture_State&0X3F)==0X3F)
                                 {  
                                   TIM5CH1_Capture_State|=0X80;
                                   TIM5CH1_Capture_Value=0XFFFFFFFF;
                                 }else TIM5CH1_Capture_State++;
                          }
                        }
                  if(TIM_GetITStatus(TIM5,TIM_IT_CC1)!= RESET)
                        {
                                if((TIM5CH1_Capture_State&0X40)==1)
                                {
                                  TIM5CH1_Capture_State|=0X80;
                                        TIM5CH1_Capture_Value=TIM_GetCapture1(TIM5);
                                        TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising);
                                }else
                                {
                                  TIM5CH1_Capture_State=0;
                                  TIM5CH1_Capture_Value=0;
                                        TIM5CH1_Capture_State|=0X40;
                                        TIM_Cmd(TIM5,DISABLE);
                                        TIM_SetCounter(TIM5,0);
                                        TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling);
                                        TIM_Cmd(TIM5,ENABLE );
                                }
                          
                        }
                 }
        TIM_ClearITPendingBit(TIM5,TIM_IT_Update|TIM_IT_CC1);
        }               
以上是本人参照原子代码写的,只不过定义的变量不同,可是编译后有两个错误,但是只要把我定义的两个变量TIM5CH1_Capture_State 和TIM5CH1_Capture_Value换成原子代码里的TIM5CH1_CAPTURE_STA和TIM5CH1_CAPTURE_VAL就没错误了,这是为什么?

最佳答案

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

1.没有工程,没有看到具体的错误,不好判断 2.TIM5CH1_CAPTURE_STA在战舰板子的输入捕获例程中就main.c和tim.c中有使用,你可能是忘记修改main.c了吧
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10567
金钱
10567
注册时间
2017-2-18
在线时间
1913 小时
发表于 2017-9-2 16:11:33 | 显示全部楼层
1.没有工程,没有看到具体的错误,不好判断
2.TIM5CH1_CAPTURE_STA在战舰板子的输入捕获例程中就main.c和tim.c中有使用,你可能是忘记修改main.c了吧
回复

使用道具 举报

0

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2017-7-26
在线时间
13 小时
发表于 2017-9-2 22:27:11 | 显示全部楼层
上图啊
回复

使用道具 举报

56

主题

520

帖子

0

精华

高级会员

Rank: 4

积分
964
金钱
964
注册时间
2014-11-18
在线时间
160 小时
发表于 2017-9-4 14:46:56 | 显示全部楼层
虽然已经解决了,但我还是告诉你正确答案

是因为   你改了变量以后没有在main函数那里申明。你看看原子哥的就有申明 extern

不过,一般情况都是   申明在h文件      这样别的调用更加方便
自己选择的路,成家前走完。
回复

使用道具 举报

43

主题

87

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-9-16
在线时间
41 小时
 楼主| 发表于 2017-9-5 10:08:57 | 显示全部楼层
aiyeba 发表于 2017-9-4 14:46
虽然已经解决了,但我还是告诉你正确答案

是因为   你改了变量以后没有在main函数那里申明。你看看原子 ...

嗯嗯,谢了,发现了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-14 21:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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