#include "at32f105_can.h"
// 查询CAN发送邮箱是否为空
uint8_t CAN_TxMailboxIsEmpty(CAN_Type *CANx) {
// 检查发送邮箱空标志(三个邮箱任一为空则返回1)
return (CANx->TSR & (CAN_TSR_TME0 | CAN_TSR_TME1 | CAN_TSR_TME2)) ? 1 : 0;
}
// 使用示例
void CAN_SendExample(CAN_Type *CANx) {
if (CAN_TxMailboxIsEmpty(CANx)) {
// 邮箱为空,可发送数据
// ... 填充发送数据和标识符 ...
}
}
|