初级会员

- 积分
- 107
- 金钱
- 107
- 注册时间
- 2017-10-16
- 在线时间
- 16 小时
|
1金钱
下载的官方战舰版的源码,只能单向传输?有什么解决的方案吗?
u8 key;
u8 i=0,t=0;
u8 cnt=0;
u8 canbuf[8];
u8 res;
u8 mode=CAN_Mode_LoopBack;
//CAN工作模式;CAN_Mode_Normal(0):普通模式。
// CAN_Mode_LoopBack(1):环回模式。
void while_1()
{
key=KEY_Scan(0);
if(key==KEY0_PRES)//KEY0按下,发送一次数据
{
for(i=0;i<8;i++)
{
canbuf[i]=cnt+i;//填充发送缓冲区
printf("canbuf[%d] = %d\n\r",i,canbuf[i]);
}
res=Can_Send_Msg(canbuf,8);//发送8个字节
if(res)
{
printf("Failed\n\r"); //提示发送失败
}
else
{
printf("OK\n\r");
}
}else if(key==WKUP_PRES)//WK_UP按下,改变CAN的工作模式
{
mode=!mode;
CAN_Mode_Init(CAN_SJW_1tq,CAN_BS2_8tq,CAN_BS1_9tq,4,mode);//CAN普通模式初始化, 波特率500Kbps
if(mode==0)//普通模式,需要2个开发板
{
printf("Nnormal Mode\r\n ");
}else //回环模式,一个开发板就可以测试了.
{
printf("LoopBack Mode\r\n");
}
}
key=Can_Receive_Msg(canbuf);
if(key)//接收到有数据
{
for(i=0;i<key;i++)
{
printf("canbuf[%d] = %d\n\r",i,canbuf[i]);
}
}
t++;
delay_ms(10);
if(t==20)
{
LED0=!LED0;//提示系统正在运行
t=0;
cnt++;
printf("cnt = %d\r\n",cnt);
}
}
|
|