Page 1 of 1

T1 怎么实现一个稳定的433收发外设

Posted: 2026年 Mar 25日 10:58
by 07Ruo

依照这个帖子的内容,https://www.tuyaos.com/viewtopic.php?t=9251,T1的硬件定时器总是会被打断,实现不了433的发送,请问有什么好方法吗


Re: T1 怎么实现一个稳定的433收发外设

Posted: 2026年 Mar 25日 11:43
by luffy

你好,你这个现象就是被其他中断打断了,433发送或者接收的时候,需要把总中断临时关闭,然后再开启,注意这个总中断不能关闭太久。可以参考我们应用开发包使用的红外接收的时序去开关总中断
/**

  • @brief t1 fiq enable
    *
  • @param[in] none: none
    *
  • @return none
    */
    static void __tdd_t1_fiq_enable(void)
    {
    *(volatile unsigned long *) (0x00802000 + 0x11 * 4) |= 0x00000002;
    return;
    }

/**

  • @brief t1 fiq disable
    *
  • @param[in] none: none
    *
  • @return none
    */
    static void __tdd_t1_fiq_disable(void)
    {
    *(volatile unsigned long *) (0x00802000 + 0x11 * 4) &= 0xFFFFFFFD;
    return;
    }

static void __tdd_t1_32k_enable(T1_REG_T *reg_val)
{
if (0 != reg_val->val_32k) {
*(volatile unsigned long *) (0x00802A00 + 0x13 * 4) |= reg_val->val_32k;
reg_val->val_32k = 0;
}
}

static void __tdd_t1_32k_disable(T1_REG_T reg_val)
{
if (0 == reg_val->val_32k) {
reg_val->val_32k = (
(volatile unsigned long *) (0x00802A00 + 0x13 * 4)) & 0x7;
*(volatile unsigned long *) (0x00802A00 + 0x13 * 4) &= 0xFFFFFFF8;
}
}