- 打卡等级:以坛为家I
- 打卡总天数:350
- 最近打卡:2025-05-01 00:57:45
高级会员
- 积分
- 829
|
在STC32G试验箱9.6的例程49中,CAN的结构是这样定义的:
typedef struct
{
u8 DLC:4; //Êý¾Ý³¤¶È, bit0~bit3
u8 :2; //¿ÕÊý¾Ý, bit4~bit5
u8 RTR:1; //Ö¡ÀàÐÍ, bit6
u8 FF:1; //Ö¡¸ñʽ, bit7
u32 ID; //CAN ID
u8 DataBuffer[8]; //Êý¾Ý»º´æ
}CAN_DataDef;
CAN_DataDef CAN1_Tx;
CAN_DataDef CAN1_Rx[8];
在程序中是这样用的:
if(B_CanRead)
{
B_CanRead = 0;
n = CanReadMsg(CAN1_Rx); //¶ÁÈ¡½ÓÊÕÄÚÈÝ
if(n>0)
{
for(i=0;i<n;i++)
{
CanSendMsg(&CAN1_Rx[i]); //CAN×ÜÏßÔÑù·µ»Ø
}
}
}
假设n=5,那么收到的数据放在CAN1_Rx[0]~CAN1_Rx[4]中,请问先收到的数据是放在CAN1_Rx[0]中还是CAN1_Rx[4]中,谢谢。
|
|