汽车电子学习【车载网络CAN/LIN】

发布于:2024-05-31 ⋅ 阅读:(134) ⋅ 点赞:(0)

车载网络CAN/LIN知识总结

在这里插入图片描述

STM32F1开发板测试

STM32测试程序

/*
 * CAN 通信报文内容设置
 */
void CAN_SetMsg(void)
{
#if CAN_STD
	TxMessage.StdId = 0x12;
	TxMessage.IDE = CAN_ID_STD;
#else
	TxMessage.ExtId = 0x1314;			//使用的扩展ID
	TxMessage.IDE = CAN_ID_EXT; 		//扩展模式
#endif	
	TxMessage.RTR = CAN_RTR_DATA; 		//发送的是数据
	TxMessage.DLC = 2; 					//数据长度 2 字节
	TxMessage.Data[0] = 0xAB;
	TxMessage.Data[1] = 0xCD;
}

/*CAN测试函数*/
void CAN_Test(void)
{
	printf( "\r\n***** CAN 通讯实验(回环测试): ******** \r\n");
	/*设置通过can发送的消息*/
	CAN_SetMsg();
	
	printf( "\r\n***** CAN 发送报文内容: ********");
#if CAN_STD
	printf( "\r\n***** CAN 标准ID号: 0x%x, 数据段内容: Data[0]=0x%x, Data[1]=0x%x\r\n", TxMessage.StdId, TxMessage.Data[0], TxMessage.Data[1]);
#else
	printf( "\r\n***** CAN 扩展ID号: 0x%x, 数据段内容: Data[0]=0x%x, Data[1]=0x%x\r\n", TxMessage.ExtId, TxMessage.Data[0], TxMessage.Data[1]);
#endif
	/* 发送消息 “ABCD” */
	CAN_Transmit(CAN1, &TxMessage);
	
	while (0xff == can_flag)
		;
	
	printf( "\r\n***** CAN 接收报文内容: ********");
#if CAN_STD
	printf( "\r\n***** CAN 标准ID号: 0x%x, 数据段内容: Data[0]=0x%x, Data[1]=0x%x \r\n", RxMessage.StdId, RxMessage.Data[0], RxMessage.Data[1]);
#else
	printf( "\r\n***** CAN 扩展ID号: 0x%x, 数据段内容: Data[0]=0x%x, Data[1]=0x%x \r\n", RxMessage.ExtId, RxMessage.Data[0], RxMessage.Data[1]);
#endif
}

完整代码见: https://download.csdn.net/download/liuxu324/89374616

串口工具输出

标准帧
在这里插入图片描述
扩展帧
在这里插入图片描述​​

PCAN-View输出

标准帧
在这里插入图片描述
扩展帧
Alt


网站公告

今日签到

点亮在社区的每一天
去签到