mini板定时器5多通道捕获

2019-08-22 13:26发布

原子哥,我最近在用mini板的定时器5做四通道的输入捕获,根据您的程序改了改,感觉好像没啥问题,但出来的结果完全不对,我还没接方波信号进来,串口给我的数据是下面图里这样的,还希望原子哥能抽点时间帮忙看一下,感激不尽!


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
szczyb1314
1楼-- · 2019-08-22 19:10
本帖最后由 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)这个的定义是可以或在一起的
至于程序逻辑上的问题就得你仿真跟踪找找了
Electronic
2楼-- · 2019-08-22 21:07
问题应该就是这里了,手上没有板子测试,这里你没有把这个值初始化位0,你看看初始化位0会不会出现现在的问题
coulson
3楼-- · 2019-08-23 01:39
 精彩回答 2  元偷偷看……
coulson
4楼-- · 2019-08-23 06:37
今天再看了一下,附上去的程序感觉问题还是比较多的,自己也试了一下,主要问题好像是在这句上

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

一旦我多打开一个通道,计数就会出现图中的问题
Electronic
5楼-- · 2019-08-23 10:07
coulson 发表于 2017-4-10 15:24
今天再看了一下,附上去的程序感觉问题还是比较多的,自己也试了一下,主要问题好像是在这句上

//初始化 ...

等晚上有时间我试试,昨天板子在公司,没有调试,所以不知道是哪里的问题
coulson
6楼-- · 2019-08-23 14:24
Electronic 发表于 2017-4-10 16:50
等晚上有时间我试试,昨天板子在公司,没有调试,所以不知道是哪里的问题

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

一周热门 更多>