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

查看: 3323|回复: 0

关于GPIO时间延迟

[复制链接]

2

主题

9

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2010-11-6 23:42:33 | 显示全部楼层 |阅读模式
我用的是stm32,现在用的GPIOC1是人为模拟的信号,在实际项目中由外部信号源提供。
问题如下:我在主函数中对GPIOC1做如下操作产生脉冲信号,用GPIOC1触发GPIOC2中断,
中断设置为双边沿触发,然后上升沿置GPIOC8为高,下降沿置GPIOC8为低,GPIOC8输出脉冲与GPIOC1同步,问题是中断函数中采用寄存器直接操作GPIOC1和GPIOC8的上升沿之间的延时为450ns,即GPIOC8的上升沿滞后于GPIOC1上升沿450ns,如果中断程序里面采用调用库函数方式,则延时为850ns,能不能通过什么优化,使得采用寄存器操作,将450ns的延时再降低一点?注释:我单独将GPIOC2设置为上升沿触发,即在中断中无需判断上升沿,直接置GPIOC8为高,这样做延时也有350ns.还有没有降低的余地?
// 主函数操作:   
GPIO_SetBits(GPIOC,GPIO_Pin_1); //置高
delay();
GPIO_ResetBits(GPIOC,GPIO_Pin_1);//置低
中断处理函数:
void EXTI2_IRQHandler(void)
{
 if ((GPIOC->IDR & GPIO_Pin_2)) //上升沿   
  GPIOC->BSRR = GPIO_Pin_8; 
 else if(!(GPIOC->IDR & GPIO_Pin_2))  // 下降沿
  GPIOC->BRR = GPIO_Pin_8;
 EXTI-&gtR = EXTI_Line2; 
}
回复

使用道具 举报

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