zrmouse 发表于 2025-5-14 11:22

AT32F105的can通讯,如何查询发送邮箱是否空?

如上,库函数使用。小白感谢!

zrmouse 发表于 2025-7-8 14:46

uchar CAN_IsEmpty(can_type* CANx)
{
        if (CANx->tsts_bit.tm0ef)
        {
                return 1 ;
        }
        else if (CANx->tsts_bit.tm1ef)
        {
                return 1 ;
        }
        else if (CANx->tsts_bit.tm2ef)
        {
                return 1 ;
        }
        return 0 ;
}

HarmonySage 发表于 2025-7-11 19:59

CAN 邮箱(Mailbox)是用于存放待发送的消息的存储区,AT32F105 中可以有多个邮箱。每个邮箱都有一个状态标志,指示该邮箱是否处于空闲、忙碌或已经成功发送状态。
查询发送邮箱是否空闲的步骤:
通过查看 CAN_TSR 寄存器(Transmission Status Register)来判断邮箱是否空闲。
CAN_TSR 寄存器中的 TME 位用于表示某个发送邮箱是否空闲。
页: [1]
查看完整版本: AT32F105的can通讯,如何查询发送邮箱是否空?