您的位置 首页 ADAS

STM8S 外部中止一直进解决方法

用到官方的函数库操作,也看了例程,设计方法基本一样:GPIO_Init(GPIOA,(GPIO_Pin_TypeDef)(GPIO_PIN_4

用到官方的函数库操作,也看了例程,规划办法根本相同:


GPIO_Init(GPIOA, (GPIO_Pin_TypeDef)(GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6), GPIO_MODE_IN_PU_IT); //设置外部IO中止形式
EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOA, EXTI_SENSITIVITY_FALL_ONLY); //设置中止触发方法

然后外部中止就可以进了,可是发现中止服务函数没有中止源的状况下一直进。

解决办法:
在初始化外部中止的时分,总中止一定要关。
初始化完外部中止,在开总中止,上述状况得到解决,只要触发源来的时分进中止。

由于没有中止的铲除标志位,这一点与其它单片机是不同的。
EXTI_CR1 触发边缘的设置 要在总中止没开时才干写入!
PD7 是 不行屏蔽的最高优先级的硬件中止 (TLI)
设置次序:最好先关中止 设置边缘 敞开引脚 最终开总中止
DisableAllIntp();
EXTI_CR1 = ****(PD口双沿中止);
Init_Exti_PD_Intp();
EnableAllIntp();
别的定时器读取与51有异,次序要先读TIM1->CNTRH 再读TIM1->CNTRL
要是反过来读 就会得不到正确的值 写CNTR寄存器时,要先封闭(disable)定时器,不然有或许无法正常写入的值

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/273189.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部