如题,用的是stm32 mini 开发板和STM32VE最小系统版,各个板子的回环模式均测试通过,用TJA1050将两块板子的CAN模块连接到一起,只能发送成功,不能接收到发送的数据,求指导。例程和图均粘出。
CAN.C文件均是原子的实验,接收实验代码:
int main(void){
u8 key;
u8 i=0,t=0;
u8 cnt=0;
u8 canbuf[8]="acdvs";
u8 res;
u8 mode=0;//CAN工作模式;0,普通模式;1,环回模式
Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,9600); //串口初始化为9600
delay_init(72); //延时初始化
CAN_Mode_Init(1,8,7,5,mode);//CAN初始化,波特率450Kbps
while(1)
{
key=Can_Receive_Msg(canbuf);
if(key)//接收到有数据
{
TransChar(canbuf);
TransChar("\r\n");
TransChar("Receive OK!\r\n");
}
else
TransChar("Receive Failed\r\n");
delay_ms(300);
}
发送数据代码:
int main(void)
{
u8 key;
u8 i=0,t=0;
u8 cnt=0;
u8 canbuf[8]="acdvs";
u8 res;
u8 mode=0;//CAN工作模式;0,普通模式;1,环回模式
Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,9600); //串口初始化为9600
delay_init(72); //延时初始化
CAN_Mode_Init(1,8,7,5,mode);//CAN初始化,波特率450Kbps
while(1)
{
TransChar("Send Data:\r\n");
res=Can_Send_Msg(canbuf,8);//发送8个字节
if(res)
TransChar("Failed\r\n"); //提示发送失败
else
TransChar("Send Ok\r\n"); //提示发送成功
memset(canbuf,0,8); //清空 数组 看是否收到了数据
delay_ms(300);
}
}
希望能给与指导,万分感谢!
|