📄 main.c
字号:
EnterNext();
break;
case 0x03:
BandRateBuf=Tempdata;
if(Tempdata>12) Error_disp(NO_BANDRATE_SIZE);
else{
if(!BCAN_ENTER_RETMODEL())
{
BCAN_SET_BANDRATE(Tempdata);
BCAN_QUIT_RETMODEL();
}
DispBuf[2]=1;
DispBuf[3]=0;DispBuf[4]=0;
FlightLed3=1;
FlightLed4=0;ClearLed4=0;
}
break;
default:
break;
}
}
if(DispBuf[1]==0x0b)
{
if(0<DispBuf[2])
{
SetSystemBuf[DispBuf[2]-1]=Tempdata;
if(DispBuf[2]==0x0a)
{
DispBuf[2]=1;
DispBuf[3]=0;DispBuf[4]=0;
FlightLed3=1;
FlightLed4=0;ClearLed4=0;
}
else EnterNext();
}
}
if(DispBuf[1]==0x0c)
{
switch(DispBuf[2])
{
case 1:
EditMsSendCount =Tempdata;
EditMsSendSave =Tempdata;
DispBuf[1]=0x05;
DispBuf[2]=0x0d;
FunckeyCount++;
ClearDispAttr();
MoveFlag=0;
break;
default:
break;
}
}
}
}
//按确认键后进入下一小项处理
void EnterNext(void) //按确认键后进入下一小项处理
{
DispBuf[3]=0;DispBuf[4]=0;
FlightLed3=1;
FlightLed4=0;ClearLed4=0;
MoveFlag=0;
DispBuf[2]++;
}
//发送键处理
void CanSendKey(void) //发送键
{
if(!FunckeyFlag)
{ BCAN_DATA_WRITE(SetSystemBuf); //将编辑的数据发送到can总线
BCAN_CMD_PRG(TR_CMD);
}
}
//
void InitCPU(void)
{
EA =1;
IT0 =1;
EX0 =1;
PX0 =1;
InitUart(); //初始化串口
}
////
uchar Config_SJA(void)
{
uchar data status=0;
Delay_50us(100) ;
TimeOut_Start(20);
BandRateBuf = ByteRate_1000k;
BCAN_ENTER_RETMODEL();
if(BCAN_CREATE_COMMUNATION())//
{
status = CAN_INTERFACE_ERR;
return(status);
}
if(BCAN_SET_BANDRATE(BandRateBuf))//初始化系统默认值波特率100kbps
{
status = CAN_INITBTR_ERR ;
return(status);
}
if(BCAN_SET_OBJECT(0xaa,0x00))
{
status =CAN_INITOBJECT_ERR;
return(status);
}
if(BCAN_SET_OUTCLK(0xaa,0x48))
{
status =CAN_INITOUTCTL_ERR;
return(status);
}
if(BCAN_QUIT_RETMODEL())
{
status = CAN_QUITRESET_ERR;
return(status);
}
SJA_BCANAdr=REG_CONTROL;
*SJA_BCANAdr=0X1E;
return status;
}
//
void CanRcv_Prg(void)
{
uchar data buf[10],status;
if(BCAN_DATA_RECEIVE(buf)) //接收数据
{status=0xe9;
Error_disp(status);
}
}
//测试处理函数
void TestDispPrg(void) //测试处理函数
{
uchar i;
DispFlag=0;
DispFlag|=0x0f;
for(i=1;i<5;i++) DispBuf[i]=0x08;
}
//消隐处理函数
void ClearDispPrg(uchar *databuf) //消隐处理函数
{
ClearDispAttr();
memcpy(&DispBuf[1],&databuf[1],4);
DispFlag=0;
switch(databuf[0])
{
case 0:
DispFlag|=0x10;
break;
case 1:
DispFlag|=0x20;
break;
case 2:
DispFlag|=0x40;
break;
case 3:
DispFlag|=0x80;
break;
case 4:
DispFlag|=0x30;
break;
case 5:
DispFlag|=0x50;
break;
case 6:
DispFlag|=0x90;
break;
case 7:
DispFlag|=0x60;
break;
case 8:
DispFlag|=0xa0;
break;
case 9:
DispFlag|=0xc0;
break;
case 10:
DispFlag|=0x70;
break;
case 11:
DispFlag|=0xb0;
break;
case 12:
DispFlag|=0xe0;
break;
case 13:
DispFlag|=0xd0;
break;
case 14:
DispFlag|=0xf0;
break;
default:
break;
}
}
//
void FlightDispPrg(uchar *databuf) //闪烁处理函数
{
ClearDispAttr();
memcpy(&DispBuf[1],&databuf[1],4);
DispFlag=0;
switch(databuf[0])
{
case 0:
DispFlag|=0x01;
break;
case 1:
DispFlag|=0x02;
break;
case 2:
DispFlag|=0x04;
break;
case 3:
DispFlag|=0x08;
break;
case 4:
DispFlag|=0x03;
break;
case 5:
DispFlag|=0x05;
break;
case 6:
DispFlag|=0x09;
break;
case 7:
DispFlag|=0x06;
break;
case 8:
DispFlag|=0x0a;
break;
case 9:
DispFlag|=0x0c;
break;
case 10:
DispFlag|=0x07;
break;
case 11:
DispFlag|=0x0b;
break;
case 12:
DispFlag|=0x0e;
break;
case 13:
DispFlag|=0x0d;
break;
case 14:
DispFlag|=0x0f;
break;
default:
break;
}
}
//
void LiftCrcDispPrg(uchar *databuf) //左循环显示处理
{
memcpy(&DispBuf[1],&databuf[1],4);
LiftCrcDispFlag=1;RightCrcDispFlag=0;
}
void RightCrcDispPrg(uchar *databuf) //右循环显示处理
{
memcpy(&DispBuf[1],&databuf[1],4);
LiftCrcDispFlag=0;RightCrcDispFlag=1;
}
//
void CanSend_Prg(void) //can发送数据
{
}
void CanErr_Prg(void) //发现错误后处理
{
Error_disp(CAN_BUS_ERR);
Config_SJA(); //
}
void CanDtOver_Prg(void) //超载处理
{
// BCAN_CMD_PRG(COS_CMD);
}
void CanWui_Prg(void) //唤醒中断处理
{
}
//
void UartRcv_Prg(void) //串口接收到数据处理
{
BCAN_DATA_WRITE(RcvBuf); //将编辑的数据发送到can总线
BCAN_CMD_PRG(TR_CMD);
}
//自动发送
void AutoSendDataToCanBus(void)
{
/* uchar i;
if((DispBuf[1]==0x05)&&(DispBuf[2]==0x0d))
{
if(EditMsSendCount ==0){
EditMsSendCount = EditMsSendSave;
SendDataCount++;
SetSystemBuf[0]++;
SetSystemBuf[1]=0x08;
for(i=2;i<10;i++)
SetSystemBuf[i]=SendDataCount;
BCAN_DATA_WRITE(SetSystemBuf); //将编辑的数据发送到can总线
BCAN_CMD_PRG(TR_CMD);
DispBuf[3]=SendDataCount>>4;
DispBuf[4]=SendDataCount&0x0f;
}
else{
EditMsSendCount--;
}
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -