OpenEdv-开源电子网

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

STM32F4 多路输入捕获测量高电平方案? 可否共用中断

[复制链接]

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2015-9-2
在线时间
5 小时
发表于 2015-9-2 09:51:53 | 显示全部楼层 |阅读模式
5金钱
  用的是原子哥的库函数的代码,现在遇到问题是,我用输入捕获来进行超声波测距模块的使用,现在有三个超声波测距模块,我想要接到同一个定时器的三个通道上,然后分别进行触发和捕获,可是我无法配置成三通道允许中断,一配置,全都不响应了。
难道是说,同一个定时器的四路,不能都使能响应捕获中断吗?  
我有三个超声波,只能开三个定时器了吗?

最佳答案

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

可以用一个中断服务函数的。 也可以用同一个定时器,最多可以捕获4路脉冲。 不过你的中断一定要非常精简!中断处理时间越短越好。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-9-2 09:51:54 | 显示全部楼层
可以用一个中断服务函数的。
也可以用同一个定时器,最多可以捕获4路脉冲。

不过你的中断一定要非常精简!中断处理时间越短越好。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-9-2 09:51:54 | 显示全部楼层
回复【6楼】pang576101312:
---------------------------------
我用寄存器配置。。。
库函数,不用。

你这个,去看看TIM_Channel 参数,是否可以多个共用一个参数(能用|合并),还是要单独配置(不能用|合并)?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2015-9-2
在线时间
5 小时
 楼主| 发表于 2015-9-2 10:40:02 | 显示全部楼层
自顶,求助我现在方案是三输入或门
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2015-9-2
在线时间
5 小时
 楼主| 发表于 2015-9-2 15:07:50 | 显示全部楼层
求助 ,顶
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2015-9-2
在线时间
5 小时
 楼主| 发表于 2015-9-3 19:58:19 | 显示全部楼层
@正点原子   原子大哥
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2015-9-2
在线时间
5 小时
 楼主| 发表于 2015-9-4 00:19:19 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
原子哥,配置输入模式的代码就是你配套战舰f4的代码,但是我配置不了多路……   

//初始化TIM3输入捕获参数
  TIM2_ICInitStructure.TIM_Channel = TIM_Channel_1; //CC1S=01  选择输入端 IC1映射到TI1上
  TIM2_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //上升沿捕获
  TIM2_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射到TI1上
  TIM2_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;  //配置输入分频,不分频 
  TIM2_ICInitStructure.TIM_ICFilter = 0x00;//IC1F=0000 配置输入滤波器 不滤波
  TIM_ICInit(TIM2, &TIM2_ICInitStructure);

TIM_ITConfig(TIM2,TIM_IT_Update|TIM_IT_CC1,ENABLE);//允许更新中断 ,允许CC1IE捕获中断

函数就是这样的, 上面的IO口初始化我弄好了,下面这个输入端映射我搞不懂怎样开多路, 是直接 TIM_Channel_1|TIM_Channel_2|TIM_Channel_3|TIM_Channel_4吗?我试过,这样一个中断也响应不了了
还有下面的  允许中断应该怎么写  TIM_IT_CC1|TIM_IT_CC2|TIM_IT_CC3|TIM_IT_CC4吗?  

不会配置多路,大哥指点我一下,困扰好几天了。
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2015-9-2
在线时间
5 小时
 楼主| 发表于 2015-9-4 10:18:28 | 显示全部楼层
@正点原子         
困扰中
回复

使用道具 举报

5

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2016-11-13
在线时间
29 小时
发表于 2017-5-10 21:50:12 | 显示全部楼层
pang576101312 发表于 2015-9-4 00:19
回复【5楼】正点原子:
---------------------------------
原子哥,配置输入模式的代码就是你配套战舰f4的 ...

我也遇到了,不知道咋解决[mw_shl_code=applescript,true]HAL_TIM_IC_Start_IT(&htim5, TIM_CHANNEL_1);
HAL_TIM_IC_Start_IT(&htim5, TIM_CHANNEL_2);
和HAL_TIM_IC_Start_IT(&htim5,  TIM_CHANNEL_1|TIM_CHANNEL_2);[/mw_shl_code]两种方式都开不了中断
回复

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2021-8-1
在线时间
13 小时
发表于 2022-9-2 15:40:48 | 显示全部楼层
木犀 发表于 2017-5-10 21:50
我也遇到了,不知道咋解决[mw_shl_code=applescript,true]HAL_TIM_IC_Start_IT(&htim5, TIM_CHANNEL_1);
...

你好,请问解决了吗?我也遇到这种问题,输入捕获四个通道分别单独使用可以,四个通道同时使用就只有一个是可以的
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-14 15:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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