继做了DAC实验后,继续进行第15个实验-CAN实验,本实验 Can总线的环回测试,LED2亮----说明100k/S 的轮询方式收发正常。LED3亮----说明500k/S 的中断方式收发正常。
typedef enum {=ENABLE;
CAN_FilterInit(&CAN_FilterInitStructure);
=0x11;
=CAN_RTR_DATA;
=CAN_ID_STD;
=2;
[0]=0xCA;
[1]=0xFE;
TransmitMailbox=CAN_Transmit(CAN1, &TxMessage);
i = 0;
while((CAN_TransmitStatus(CAN1, TransmitMailbox) != CANTXOK) && (i != 0xFF))
{
i++;
}
i = 0;
while((CAN_MessagePending(CAN1, CAN_FIFO0) < 1) && (i != 0xFF))
{
i++;
}
=0x00;
=CAN_ID_STD;
=0;
[0]=0x00;
[1]=0x00;
CAN_Receive(CAN1, CAN_FIFO0, &RxMessage);
if (!=0x11)
{
return FAILED;
}
if (!=CAN_ID_STD)
{
return FAILED;
}
if (!=2)
{
return FAILED;
}
if (([0]<<8|[1])!=0xCAFE)
{
return FAILED;
}
return PASSED;
}
TestStatus CAN_Interrupt(void)
{
CAN_InitTypeDef CAN_InitStructure;
CAN_FilterInitTypeDef CAN_FilterInitStructure;
CanTxMsg TxMessage;
uint32_t i = 0;
CAN_DeInit(CAN1);
CAN_StructInit(&CAN_InitStructure);
=DISABLE;
CAN_InitStru
CAN实验 来自淘豆网m.daumloan.com转载请标明出处.