OpenEdv-开源电子网

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

mini板定时器5多通道捕获

[复制链接]

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2017-3-25
在线时间
15 小时
发表于 2017-4-9 22:04:54 | 显示全部楼层 |阅读模式
3金钱
原子哥,我最近在用mini板的定时器5做四通道的输入捕获,根据您的程序改了改,感觉好像没啥问题,但出来的结果完全不对,我还没接方波信号进来,串口给我的数据是下面图里这样的,还希望原子哥能抽点时间帮忙看一下,感激不尽!


无标题.jpg

COUNT.zip

2.91 MB, 下载次数: 159

计数的程序

最佳答案

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

TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1|TIM_Channel_2|TIM_Channel_3|TIM_Channel_4; 这是不合适的, #define TIM_Channel_1 ((uint16_t)0x0000) #define TIM_Channel_2 ((uint16_t)0x0004) #define TIM_Channel_3 ((uint16_t)0x0008) #define TIM_Channel_4 ((uint16_t)0x000C)这是几个通道的定义,你把它们或在一起肯定 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2017-4-9 22:04:55 | 显示全部楼层
本帖最后由 szczyb1314 于 2017-4-10 23:11 编辑

TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1|TIM_Channel_2|TIM_Channel_3|TIM_Channel_4;
这是不合适的,
#define TIM_Channel_1                      ((uint16_t)0x0000)
#define TIM_Channel_2                      ((uint16_t)0x0004)
#define TIM_Channel_3                      ((uint16_t)0x0008)
#define TIM_Channel_4                      ((uint16_t)0x000C)这是几个通道的定义,你把它们或在一起肯定不是你想要的四个通道一起开的效果
#define TIM_IT_Update                      ((uint16_t)0x0001)
#define TIM_IT_CC1                         ((uint16_t)0x0002)
#define TIM_IT_CC2                         ((uint16_t)0x0004)
#define TIM_IT_CC3                         ((uint16_t)0x0008)
#define TIM_IT_CC4                         ((uint16_t)0x0010)
#define TIM_IT_COM                         ((uint16_t)0x0020)
#define TIM_IT_Trigger                     ((uint16_t)0x0040)
#define TIM_IT_Break                       ((uint16_t)0x0080)这个的定义是可以或在一起的
至于程序逻辑上的问题就得你仿真跟踪找找了
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4036
金钱
4036
注册时间
2015-11-14
在线时间
545 小时
发表于 2017-4-9 23:18:49 | 显示全部楼层
问题应该就是这里了,手上没有板子测试,这里你没有把这个值初始化位0,你看看初始化位0会不会出现现在的问题
无标题.jpg
回复

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2017-3-25
在线时间
15 小时
 楼主| 发表于 2017-4-10 15:19:01 | 显示全部楼层
Electronic 发表于 2017-4-9 23:18
问题应该就是这里了,手上没有板子测试,这里你没有把这个值初始化位0,你看看初始化位0会不会出现现在的问 ...

首先十分感谢您的解答,根据您的建议,我试了一下,但结果还是不行
2.jpg
回复

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2017-3-25
在线时间
15 小时
 楼主| 发表于 2017-4-10 15:24:00 | 显示全部楼层
今天再看了一下,附上去的程序感觉问题还是比较多的,自己也试了一下,主要问题好像是在这句上

//初始化TIM5输入捕获参数
        TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1|TIM_Channel_2|TIM_Channel_3|TIM_Channel_4;

一旦我多打开一个通道,计数就会出现图中的问题
回复

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4036
金钱
4036
注册时间
2015-11-14
在线时间
545 小时
发表于 2017-4-10 16:50:07 | 显示全部楼层
coulson 发表于 2017-4-10 15:24
今天再看了一下,附上去的程序感觉问题还是比较多的,自己也试了一下,主要问题好像是在这句上

//初始化 ...

等晚上有时间我试试,昨天板子在公司,没有调试,所以不知道是哪里的问题
回复

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2017-3-25
在线时间
15 小时
 楼主| 发表于 2017-4-10 17:03:10 | 显示全部楼层
Electronic 发表于 2017-4-10 16:50
等晚上有时间我试试,昨天板子在公司,没有调试,所以不知道是哪里的问题

谢谢您,另外,昨天附上去的程序今天再看了一下,感觉问题挺多,包括上面回复的那个,对4个通道分别初始化好像解决了一部分问题
回复

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4036
金钱
4036
注册时间
2015-11-14
在线时间
545 小时
发表于 2017-4-10 17:50:27 | 显示全部楼层
coulson 发表于 2017-4-10 17:03
谢谢您,另外,昨天附上去的程序今天再看了一下,感觉问题挺多,包括上面回复的那个,对4个通道分别初始 ...

还有什么问题你直接说,我晚上看看是哪里的问题
回复

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2017-3-25
在线时间
15 小时
 楼主| 发表于 2017-4-10 22:46:18 | 显示全部楼层
Electronic 发表于 2017-4-10 17:50
还有什么问题你直接说,我晚上看看是哪里的问题

我现在把
TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1|TIM_Channel_2|TIM_Channel_3|TIM_Channel_4;
这句改了,分开初始化每一个通道,然后不会出现没输入就有计数的情况,但有点新问题,就是下面这句
TIM_ITConfig(TIM5,TIM_IT_CC1|TIM_IT_CC2|TIM_IT_CC3|TIM_IT_CC4,ENABLE);
从实验现象来看CC1和CC2互相不会影响,也不会影响到CC3和CC4,但是CC3和CC4好像会相互影响,体现在实验现象上就是串口上什么都不打印了
回复

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2017-3-25
在线时间
15 小时
 楼主| 发表于 2017-4-10 23:11:58 | 显示全部楼层
szczyb1314 发表于 2017-4-10 23:10
TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1|TIM_Channel_2|TIM_Channel_3|TIM_Channel_4;
这是不 ...

嗯嗯,谢谢,这个错误我已经发现并改正了,但还是存在一些问题,现在正在努力解决
回复

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2017-3-25
在线时间
15 小时
 楼主| 发表于 2017-4-13 11:04:16 | 显示全部楼层
这个问题目前基本搞定,感谢几位的帮助
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-22 07:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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