工具/软件:Code Composer Studio
尊敬的所有人:
我们拥有具有 TM4C1294NCPDT MCU 和 SN65HV CAN 总线转换器的定制开发板。 当 CAN 总线通信首次启动时、CAN 消息似乎持续发送 CAN 消息、有时每500us/1.5ms 发送一次。 这样做的原因可能是什么? 节点在此处确认数据、 因此不是坏节点问题。
可以看到 CTL_STS 的 TXOK 位始终为高电平、并且消息由第二个节点(PFA 映像)确认。 即使能够在第二个节点中获取正确的数据也是如此。
PF 低于 CAN 初始代码:
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);//启用 CAN1 GPIO 外设 SysCtlPeripheralEnable (SYSCTL_Periph_CAN1); GPIOPinConfigure (GPIO_PB0_CAN1RX); GPIOPinConfigure (GPIO_PB1_CAN1TX); GPIOPINTypeCAN (GPIO_P1_ORTb);GPIOP1_PIN_0 CANInit (CAN1_base); CANBitRateSet (CAN1_base、sysClock、100000); // CANIntRegister (CAN1_base、 CANIntHandler);//使用动态矢量表分配 CANIntEnable (CAN1_base、CAN_INT_MASTER | CAN_INT_ERROR | CAN_INT_STATUS); IntEnable (INT_CAN1); CANEnable (CAN1_base); TxMessage.ui32MsgID = 1; TxMessage.ui32MsgIDMask = 0; TxMessage.ui32Flags = MSG_OBJ_TX_INT_ENABLE; TxMessage.ui32MsgLen = 8; TxMessage.pui8MsgData = TData_PTR;
可以发送数据 :
对于(j=(4*seq);j<(4*(seq+1));j++) { TData_PTR[j]=CAN_NODE_DATA.D[节点][j]; } IntMasterDisable (); CANMessageSet (CAN1_base、1、&TxMessage、 MSG_OBJ_TYPE_TX);//作为 msg 对象发送1 delay_ms (10); IntMasterEnable();
