问答

汇集网友智慧,解决技术难题

21ic问答首页 - AT32F105的can通讯,如何查询发送邮箱是否空?

AT32 CAN 邮箱 CAN通讯 发送 105

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

zrmouse2025-05-14
如上,库函数使用。小白感谢!
回答 +关注 4
703人浏览 2人回答问题 分享 举报
2 个回答
  • CAN 邮箱(Mailbox)是用于存放待发送的消息的存储区,AT32F105 中可以有多个邮箱。每个邮箱都有一个状态标志,指示该邮箱是否处于空闲、忙碌或已经成功发送状态。
    查询发送邮箱是否空闲的步骤:
    通过查看 CAN_TSR 寄存器(Transmission Status Register)来判断邮箱是否空闲。
    CAN_TSR 寄存器中的 TME 位用于表示某个发送邮箱是否空闲。
  • 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 ;
    }

您需要登录后才可以回复 登录 | 注册