查看: 2918|回复: 0

基于GD32F450的红外解码--外部中断

[复制链接]
  • TA的每日心情

    2023-7-25 22:49
  • 签到天数: 385 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2017-5-25 00:26:54 | 显示全部楼层 |阅读模式
    分享到:
    接上篇,红外解码首先是捕捉到红外数据,我们第一篇里的原理图:

    红外数据是接在PB2上,所以我们要使用外部中断来测量PB2上的高低电平时间,然把我这些时间存储起来。
    外部中断初始化函数和中断处理函数如下:
    1. /*!
    2.     \brief      initialize Exti Interrupt(PB2)
    3.     \param[in]  none
    4.     \param[out] none
    5.     \retval     none
    6. */
    7. void InitExtiInterrupt(void)
    8. {
    9.         rcu_periph_clock_enable(RCU_SYSCFG);
    10.         nvic_irq_enable(EXTI2_IRQn,0,0);
    11.         exti_init(EXTI_2,EXTI_INTERRUPT,EXTI_TRIG_BOTH);
    12.         syscfg_exti_line_config(EXTI_SOURCE_GPIOB,EXTI_SOURCE_PIN2);
    13.         exti_interrupt_flag_clear(EXTI_2);
    14. }

    15. /*!
    16.     \brief      Exti Interrupt2(PB2) Handler
    17.     \param[in]  none
    18.     \param[out] none
    19.     \retval     none
    20. */
    21. void EXTI2_IRQHandler(void)
    22. {
    23.        
    24.         exti_interrupt_flag_clear(EXTI_2);
    25.         //判断是否开始捕获
    26.         if(!StartCapture)
    27.         {
    28.                 return;
    29.         }
    30.        
    31.         if(gpio_input_bit_get(GPIOB,GPIO_PIN_2) == SET)
    32.         {
    33.                 //TODO 上升沿触发(读取低电平的时间)
    34.         }
    35.         else
    36.         {
    37.                 //TODO 下降沿触发(读取高电平的时间)
    38.         }
    39. }
    复制代码
    太晚了,先到这里。



    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-29 06:29 , Processed in 0.118097 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.