key=1;
if(key==KEY_RIGHT)//KEY0按下,发送一次数据
{
for(i=0;i<8;i++)
{
canbuf=UART1_TX_BUF;//填充发送缓冲区
}
res=Can_Send_Msg(canbuf,8);//发送8个字节 res=0代表发送成功
if(res==0)
{
LED1=!LED1; //PF6:发送指示灯 :延时1S中
delay_ms(1000);
}
}
}
//////////////////上面是发送//////////////////////////////////
key1=Can_Receive_Msg(buf);
if(key1)//接收到有数据
{
for(i=0;i<key1;i++)
{
UART1_TX_BUF=buf;
LED0=!LED0; //PC12:接受指示灯 延时100ms:亮灭4次,充分说明CAN每次发送八个字节的数据;
delay_ms(200);
}
UART1_TX_BUF=0; //自动添加结束符
printf("\r\n%s\r\n",UART1_TX_BUF);//发送接收到的数据到串口1
}
////////////////////////上面是接收///////////////////////////////////////
我想请教一下,如果两个分开分别发送给两块板子的话,问什么负责接收的开发板 收不到信息呢??
key1=Can_Receive_Msg(buf);
if(key1)//接收到有数据
{
for(i=0;i<key1;i++)
{
UART1_TX_BUF=buf;
LED0=!LED0; //PC12:接受指示灯 延时100ms:亮灭4次,充分说明CAN每次发送八个字节的数据;
delay_ms(200);
}
UART1_TX_BUF=0; //自动添加结束符
printf("\r\n%s\r\n",UART1_TX_BUF);//发送接收到的数据到串口1
}
当我只用这个给接收的板子的时候,key1一直是0,接收不到。想请教一下 这个是问什么呢???我想做个东西是这样的:A板子负责发送,接收UART1的串口助手写数据,然后通过CAN 发送到B 板子,B板子接收到之后会显示在串口助手里面;最好反之也可以。恳请原子哥 或者洋哥指点下。谢谢谢谢!!
|