完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32外部中断边沿触发存在延时问题
概括: 通过软件调试,示波器观察的方式,来分析外部中断边沿触发存在时延的原因。 问题: 在调试模拟SPI接收的时候,想用外部中断检测上升沿的方式来捕捉SCK的上升沿却发现了外部中断存在时延的情况。 直接上图 ●黄色线信号:为SPI的SCK线 ●紫色线信号:捕捉的上升沿信号 观察紫色信号在一定时间之后才捕捉到了黄色信号的上升沿。 调试:(MCU-STM32F103 时钟-72M) 中断函数: /*外部中断0中断*/ /*SCK信号线触发外部中断*/ void EXTI1_IRQHandler(void)//中断服务函数 { if(EXTI_GetITStatus(EXTI_Line1) != RESET ) { Flag_H;//对应紫色信号线 EXTI_ClearITPendingBit(EXTI_Line1); Flag_L;//对应紫色信号线 } } 主函数(主循环不做任何指令): int main() { SysTick_init(); SPI_GPIO_Config(); EXTI_PB1_Config(); while(1) { } } 测试波形: 观察被测波形,在上升沿与检测到上升沿之间有近1.2us的时延,于是怀疑问题出在了中断函数里。 ●●●更改中断函数●●● /*SCK信号线触发外部中断*/ void EXTI1_IRQHandler(void)//中断服务函数 { if(1) { Flag_H;//对应紫色信号线 EXTI_ClearITPendingBit(EXTI_Line1); Flag_L;//对应紫色信号线 } } 测试波形: 观察波形发现去掉一句中断检测时延就减少了近700ns。 EXTI_GetITStatus(EXTI_Line1) != RESET 所以说要想了解MCU底层尽量就去了解寄存器操作,库函数方便但也有些弊端。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1632 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1559 浏览 1 评论
985 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
688 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1605 浏览 2 评论
1869浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
652浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
522浏览 3评论
539浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
508浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 10:17 , Processed in 1.272783 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号