📄 can.h
字号:
CAN_QKYC3.Byte=RBDSR3;
//D0D1 D2D3 D4D5 D6D7
//雨刮到位 电/气喇叭转换ABS工作状态NC
CAN_QKYC4.Byte=RBDSR4;
//D0D1 D2D3 D4D5 D6D7
//缓速器工作信号输入 ASR指示灯输入 ABS指示灯输入 NC
CAN_QKYC5.Byte=RBDSR5;
//D0D1 D2D3 D4D5 D6D7
//NC NC NC NC
CAN_QKYC6.Byte=RBDSR6;
//D0D1 D2D3 D4D5 D6D7
//NC NC NC NC
CAN_QKYC7.Byte=RBDSR7;
//D0D1 D2D3 D4D5 D6D7
//NC NC NC NC
//执行相关位判断
//围门开关
if(CAN_QKYC1.Bit.BIT0==1&&CAN_QKYC1.Bit.BIT1==0) //开门
{
CAN_YB3.Bit.BIT6=1;
CAN_YB3.Bit.BIT7=0;
door1_flag=1;
door_wakeup_flag=1;
CAN_JLY1.Bit.BIT0=1;
CAN_JLY1.Bit.BIT1=0;
}
else if(CAN_QKYC1.Bit.BIT2==1&&CAN_QKYC1.Bit.BIT3==0) //关门
{
CAN_YB3.Bit.BIT6=0;
CAN_YB3.Bit.BIT7=1;
door1_flag=0;
door_wakeup_flag=1;
CAN_JLY1.Bit.BIT0=0;
CAN_JLY1.Bit.BIT1=1;
}
if((door_status.Bit.BIT0==0&&door_status.Bit.BIT1==0)&&(CAN_QKYC0.Bit.BIT0==1||CAN_QKYC0.Bit.BIT1==1))
{
door_status.Bit.BIT0=CAN_QKYC0.Bit.BIT0;
door_status.Bit.BIT1=CAN_QKYC0.Bit.BIT1;
}
//前门开关-开
else if(CAN_QKYC0.Bit.BIT0==1&&CAN_QKYC0.Bit.BIT1==0&&door_status.Bit.BIT0==0&&door_status.Bit.BIT1==1)
{
door_status.Bit.BIT0=CAN_QKYC0.Bit.BIT0;
door_status.Bit.BIT1=CAN_QKYC0.Bit.BIT1;
CAN_YB3.Bit.BIT6=1;
CAN_YB3.Bit.BIT7=0;
door1_flag=1;
door_wakeup_flag=1;
CAN_JLY1.Bit.BIT0=1;
CAN_JLY1.Bit.BIT1=0;
}
//前门开关-关
else if(CAN_QKYC0.Bit.BIT0==0&&CAN_QKYC0.Bit.BIT1==1&&door_status.Bit.BIT0==1&&door_status.Bit.BIT1==0)
{
door_status.Bit.BIT0=CAN_QKYC0.Bit.BIT0;
door_status.Bit.BIT1=CAN_QKYC0.Bit.BIT1;
CAN_YB3.Bit.BIT6=0;
CAN_YB3.Bit.BIT7=1;
door1_flag=0;
door_wakeup_flag=1;
CAN_JLY1.Bit.BIT0=0;
CAN_JLY1.Bit.BIT1=1;
}
//前门状态信息
if((door_status.Bit.BIT2==0&&door_status.Bit.BIT3==0)&&(CAN_QKYC0.Bit.BIT4==1||CAN_QKYC0.Bit.BIT5==1))
{
door_status.Bit.BIT2=CAN_QKYC0.Bit.BIT4;
door_status.Bit.BIT3=CAN_QKYC0.Bit.BIT5;
}
//后门开关-开
else if(CAN_QKYC0.Bit.BIT4==1&&CAN_QKYC0.Bit.BIT5==0&&door_status.Bit.BIT2==0&&door_status.Bit.BIT3==1)
{
door_status.Bit.BIT2=CAN_QKYC0.Bit.BIT4;
door_status.Bit.BIT3=CAN_QKYC0.Bit.BIT5;
door2_flag=1;
door_wakeup_flag=1;
CAN_YB4.Bit.BIT0=1;
CAN_YB4.Bit.BIT1=0;
}
//后门开关-关
else if(CAN_QKYC0.Bit.BIT4==0&&CAN_QKYC0.Bit.BIT5==1&&door_status.Bit.BIT2==1&&door_status.Bit.BIT3==0)
{
door_status.Bit.BIT2=CAN_QKYC0.Bit.BIT4;
door_status.Bit.BIT3=CAN_QKYC0.Bit.BIT5;
door2_flag=0;
door_wakeup_flag=1;
CAN_YB4.Bit.BIT0=0;
CAN_YB4.Bit.BIT1=1;
}
/////
}
//前控右状态ID18ff182b(c7fe2856)
else if(can_rec_id2==0x28 && can_rec_id3==0x56){
CAN_QKYS0.Byte=RBDSR0;
//D0D1 D2D3 D4D5 D6D7
//右前小灯 缓速器控制电源输出 右近光灯 前右转向灯
CAN_QKYS1.Byte=RBDSR1;
//D0D1 D2D3 D4D5 D6D7
//右远光灯 洗涤电机 右前雾灯 右镜加热器
CAN_QKYS2.Byte=RBDSR2;
//D0D1 D2D3 D4D5 D6D7
//监视器电源 ABS ON档电源 雨刮高速 雨刮低速
CAN_QKYS3.Byte=RBDSR3;
//D0D1 D2D3 D4D5 D6D7
//前门电磁阀开 前门电磁阀关 除霜电机高速 除霜电机低速
CAN_QKYS4.Byte=RBDSR4;
//D0D1 D2D3 D4D5 D6D7
//音响电源 行驶记录仪电源 右后视镜电机 NC
CAN_QKYS5.Byte=RBDSR5;
//D0D1 D2D3 D4D5 D6D7
//NC NC NC NC
CAN_QKYS6.Byte=RBDSR6;
//D0D1 D2D3 D4D5 D6D7
//NC NC NC NC
CAN_QKYS7.Byte=RBDSR7;
//D0D1 D2D3 D4D5 D6D7
//NC NC NC NC
//执行相关位判断
}
//中控命令ID18ff0f8a(c7fe1f14)
else if(can_rec_id2==0x1f && can_rec_id3==0x14){
CAN_ZKC0.Byte=RBDSR0;
//D0D1 D2D3 D4D5 D6D7
//后门防夹开关 后踏步灯开关 卫生间有人开关 手制动开关
CAN_ZKC1.Byte=RBDSR1;
//D0D1 D2D3 D4D5 D6D7
//左行李仓灯1开关 左行李仓灯2开关 左行李仓灯3开关 左行李仓灯4开关
CAN_ZKC2.Byte=RBDSR2;
//D0D1 D2D3 D4D5 D6D7
//右行李仓灯1开关 右行李仓灯2开关 右行李仓灯3开关 右行李仓灯4开关
CAN_ZKC3.Byte=RBDSR3;
//D0D1 D2D3 D4D5 D6D7
//刹车开关 NC NC NC
CAN_ZKC4.Byte=RBDSR4;
//D0D1 D2D3 D4D5 D6D7
//0~7气压1
CAN_ZKC5.Byte=RBDSR5;
//D0D1 D2D3 D4D5 D6D7
//0~7气压2
CAN_ZKC6.Byte=RBDSR6;
//D0D1 D2D3 D4D5 D6D7
//0~7燃油
CAN_ZKC7.Byte=RBDSR7;
//D0D1 D2D3 D4D5 D6D7
//润滑压力开关 低气压开关1 低气压开关2 燃油低开关
//执行相关位判断
if(CAN_ZKC0.Bit.BIT0==1&&CAN_ZKC0.Bit.BIT1==0) door2_flag=1;
//else door2_flag=0;
/////
}
//中控状态ID18ff102b(c7fe2056)
else if(can_rec_id2==0x20 && can_rec_id3==0x56){
CAN_ZKS0.Byte=RBDSR0;
//D0D1 D2D3 D4D5 D6D7
//侧左转向灯1 侧左转向灯2 侧右转向灯1 侧右转向灯2
CAN_ZKS1.Byte=RBDSR1;
//D0D1 D2D3 D4D5 D6D7
//左标志灯1 左标志灯2 左标志灯3 右标志灯1
CAN_ZKS2.Byte=RBDSR2;
//D0D1 D2D3 D4D5 D6D7
//右标志灯2 右标志灯3 左轮边灯 右轮边灯
CAN_ZKS3.Byte=RBDSR3;
//D0D1 D2D3 D4D5 D6D7
//左行李仓灯1 左行李仓灯2 左行李仓灯3 左行李仓灯4
CAN_ZKS4.Byte=RBDSR4;
//D0D1 D2D3 D4D5 D6D7
//右行李仓灯1 右行李仓灯2 右行李仓灯3 右行李仓灯4
CAN_ZKS5.Byte=RBDSR5;
//D0D1 D2D3 D4D5 D6D7
//前门底踏步灯 中门底踏步灯 屈膝电磁阀1 屈膝电磁阀2
CAN_ZKS6.Byte=RBDSR6;
//D0D1 D2D3 D4D5 D6D7
//气喇叭 电喇叭 后门电磁阀开 后门电磁阀关
CAN_ZKS7.Byte=RBDSR7;
//D0D1 D2D3 D4D5 D6D7
//卫生间电源 NC NC NC
//执行相关位判断
}
//尾控命令ID18ff0c89(c7fe1912)
else if(can_rec_id2==0x19 && can_rec_id3==0x12){
CAN_WKC0.Byte=RBDSR0;
//D0D1 D2D3 D4D5 D6D7
//润滑压力开关 机油压力开关 机油旁通开关 过热开关
CAN_WKC1.Byte=RBDSR1;
//D0D1 D2D3 D4D5 D6D7
//空滤器堵塞开关 水位传感器 NC NC
CAN_WKC2.Byte=RBDSR2;
//D0D1 D2D3 D4D5 D6D7
//后启动开关 发动机仓灯开关 倒车开关 空档开关
CAN_WKC3.Byte=RBDSR3;
//D0D1 D2D3 D4D5 D6D7
//安全开关 油门开关 充电信号 NC
CAN_WKC4.Byte=RBDSR4;
//D0D1 D2D3 D4D5 D6D7
//0~7机油压力
CAN_WKC5.Byte=RBDSR5;
//D0D1 D2D3 D4D5 D6D7
//0~7水温
CAN_WKC6.Byte=RBDSR6;
//D0D1 D2D3 D4D5 D6D7
//0~7预热温度
CAN_WKC7.Byte=RBDSR7;
//D0D1 D2D3 D4D5 D6D7
//NC NC NC NC
//执行相关位判断
/////
}
//尾控状态ID18ff0d2b(c7fe1a56)
else if(can_rec_id2==0x1a && can_rec_id3==0x56){
CAN_WKS0.Byte=RBDSR0;
//D0D1 D2D3 D4D5 D6D7
//排气制动电磁阀 发动机仓灯 左倒车灯 右倒车灯
CAN_WKS1.Byte=RBDSR1;
//D0D1 D2D3 D4D5 D6D7
//左后雾灯 右后雾灯 电磁开关 预热继电器
CAN_WKS2.Byte=RBDSR2;
//D0D1 D2D3 D4D5 D6D7
//左后小灯 右后小灯 启动继电器 自动润滑电机
CAN_WKS3.Byte=RBDSR3;
//D0D1 D2D3 D4D5 D6D7
//牌照灯组 空调电容箱电源 左标志灯4 左标志灯5
CAN_WKS4.Byte=RBDSR4;
//D0D1 D2D3 D4D5 D6D7
//右标志灯4 右标志灯5 左刹车灯 右刹车灯
CAN_WKS5.Byte=RBDSR5;
//D0D1 D2D3 D4D5 D6D7
//后左转向灯 后右转向灯 车速传感器电源 NC
CAN_WKS6.Byte=RBDSR6;
//D0D1 D2D3 D4D5 D6D7
//NC NC NC NC
CAN_WKS7.Byte=RBDSR7;
//D0D1 D2D3 D4D5 D6D7
//NC NC NC NC
//执行相关位判断
}
//尾控数据ID18ff1a89(c7fe13512)
else if(can_rec_id2==0x35 && can_rec_id3==0x12){
CAN_WKD0.Byte=RBDSR0;
//D0D1 D2D3 D4D5 D6D7
//0~7转速高位
CAN_WKD1.Byte=RBDSR1;
//D0D1 D2D3 D4D5 D6D7
//0~7转速低位
CAN_WKD2.Byte=RBDSR2;
//D0D1 D2D3 D4D5 D6D7
//0~7车速
CAN_WKD3.Byte=RBDSR3;
//D0D1 D2D3 D4D5 D6D7
//0~7里程小计高位
CAN_WKD4.Byte=RBDSR4;
//D0D1 D2D3 D4D5 D6D7
//0~7里程小计中位
CAN_WKD5.Byte=RBDSR5;
//D0D1 D2D3 D4D5 D6D7
//0~7里程小计低位
CAN_WKD6.Byte=RBDSR6;
//D0D1 D2D3 D4D5 D6D7
//NC NC NC NC
CAN_WKD7.Byte=RBDSR7;
//D0D1 D2D3 D4D5 D6D7
//NC NC NC NC
//执行相关位判断
/*if(comp_motor_flag){
yb_step_first();
cs_step_count();
zs_step_count();
}*/
licheng_temp0=CAN_WKD3.Byte;
licheng_temp1=CAN_WKD4.Byte;
licheng_temp2=CAN_WKD5.Byte;
licheng=licheng_temp0;
licheng=licheng<<8;
licheng+=licheng_temp1;
licheng=licheng<<8;
licheng+=licheng_temp2;
}
//行使记录仪
else if(can_rec_id2==0x31 && can_rec_id3==0x16){
jly_ture_flag=1;
}
else{//出错返回
canid_error=1;
}
}
//
else{
canid_error=1;
if(can_rec_id2==0xff && can_rec_id3==0xff && can_rec_id0==0xc7 && can_rec_id1==0xff)
init_at24_flag=1;//at24_init();
else init_at24_flag=0;
//远程帧ID18ffff
}
CRFLG=0x01; //清接受缓冲器满标志
//数据后续处理
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -