还是接收到的报文如何点亮一个LED的问题
本帖最后由 ysp5318 于 2024-9-19 17:24 编辑if(sr & 0x01) //判断是否有 BS:BUS-OFF状态
{
CANAR = MR;
CANDR &= ~0x04;//清除 Reset Mode, 从BUS-OFF状态退出
}
else
{
CanSendMsg(&CAN2_Tx); //发送一帧数据
}
}
}
if(B_Can1Read)
{
B_Can1Read = 0;
CANSEL = 0; //选择CAN1模块
n = CanReadMsg(CAN1_Rx); //读取接收内容
if(n>0)
{
for(i=0;i<n;i++)
{
if(CAN1_Rx.ID == 0x0567)
{
if(CAN1_Rx.DataBuffer == 0x11)
{
P20 = 0; //LED On //开灯
}
else
{
P21 = 0; //LED On //开灯
}
}
// CanSendMsg(&CAN1_Rx);//CAN总线原样返回
// printf("CAN1:ID=0x%08lX DLC=%d FF=%d RTR=%d ",CAN1_Rx.ID,CAN1_Rx.DLC,CAN1_Rx.FF,CAN1_Rx.RTR); //串口打印帧信息
// for(j=0;j<CAN1_Rx.DLC;j++)
// {
// printf("0x%02X ",CAN1_Rx.DataBuffer); //从串口输出收到的数据
// }
// printf("\r\n");
}
把屠龙刀中14-CAN1-CAN2总线标准帧扩展帧同时使用收发测试的程序作了以上修改但在屠龙刀上不能实现,请老师赐教。 例程包里面的例子读取报文是存放在结构体数组,循环判断收取的每个报文的内容
谢谢乘风老师! 一语点破{:biggrin:}
页:
[1]