你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103的外中断响应时间多长?

[复制链接]
艺术就是爆炸 提问时间:2015-4-2 16:10 /
本帖最后由 艺术就是爆炸 于 2015-4-2 16:41 编辑

手册等资料说是6个周期,但是我在72M时钟下运行时发现基本上在1us左右。也就是72周期。

测试方法是用示波器观察比较外输出信号下降沿和中断程序起始执行时间差,我在中断程序内加了个端口输出高和低,每次进中断就会输出一次。

目前已经排除因素有:
1 无其他中断
2 外中断服务函数执行顺序
3 输出引脚速度
4 时钟设置
更新:刚刚找到个中断没关,屏蔽后时间下降到400ns,但是感觉还是偏大了些。
收藏 评论10 发布时间:2015-4-2 16:10

举报

10个回答
艺术就是爆炸 回答时间:2015-4-2 16:10:37
补充:没有运行操作系统,主要为库函数编程
w小菜才 回答时间:2015-4-2 17:53:13
顶一下
kqh1120 回答时间:2015-4-2 21:21:07
学习了 smile.gif
wu1169668869 回答时间:2015-4-3 00:34:13
就算进中断的时间是6clk
进行IO翻转也要些时间吧 3.gif
而且和IO配置也会有关系
wu1169668869 回答时间:2015-4-3 00:34:56
没认真研究过,是什么实时性要求很高的应用吗 3.gif
nocoyou 回答时间:2015-4-3 02:01:51
没测试过
废鱼 回答时间:2015-4-3 09:13:41
IO设置为50Mhz的试试。
艺术就是爆炸 回答时间:2015-4-3 12:05:11
IO速度配置为HIGH了,IO操作方式尝试过位带和端口寄存器置位和清除,速度差不多
小仙球 回答时间:2017-6-26 11:21:26
我使用tim1测量的结果是0x36个时钟周期
测试代码如下:
void EXTI0_IRQHandler(void)
{
        volatile uint32_t i=0;
        TIM_Cmd(TIM1,DISABLE);
        i++;
        TIM_SetCounter(TIM1,0x0);
        TIM_Cmd(TIM1,ENABLE);
}


进了中断后不清楚中断标志位,tim1 的配置是无div 无预分频,时钟为72MHz,sysclok=72MHz
小仙球 回答时间:2017-6-26 11:25:32
小仙球 发表于 2017-6-26 11:21
我使用tim1测量的结果是0x36个时钟周期
测试代码如下:
void EXTI0_IRQHandler(void)

volatile uint32_t j=0;
void EXTI0_IRQHandler(void)
{

        //TIM_Cmd(TIM1,DISABLE);
           TIM1->CR1 &= (uint16_t)(~((uint16_t)TIM_CR1_CEN));

        j++;
        TIM_SetCounter(TIM1,0x0);
        //TIM_Cmd(TIM1,ENABLE);
         TIM1->CR1 |= TIM_CR1_CEN;
}

这样测的结果是0x27

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版