車載網絡CAN/LIN知識總結
STM32F1開發板測試
STM32測試程序
/** CAN 通信報文內容設置*/
void CAN_SetMsg(void)
{
#if CAN_STDTxMessage.StdId = 0x12;TxMessage.IDE = CAN_ID_STD;
#elseTxMessage.ExtId = 0x1314; //使用的擴展IDTxMessage.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_STDprintf( "\r\n***** CAN 標準ID號: 0x%x, 數據段內容: Data[0]=0x%x, Data[1]=0x%x\r\n", TxMessage.StdId, TxMessage.Data[0], TxMessage.Data[1]);
#elseprintf( "\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_STDprintf( "\r\n***** CAN 標準ID號: 0x%x, 數據段內容: Data[0]=0x%x, Data[1]=0x%x \r\n", RxMessage.StdId, RxMessage.Data[0], RxMessage.Data[1]);
#elseprintf( "\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輸出
標準幀
擴展幀