你(们)好。
我使用的是 TM4C1294NCPDT 微控制器。 我将数据从一个 PCB 传输到另一个 PCB。 并使用 CAN 通信协议接收数据。
我的问题是、我从使用的 CAN 传输数据、这个 CAN 帧包含8个字节。 我决定添加更多帧。 例如:
CAN 初始化:
空 CAN1_Initialize (空)
{
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);
GPIOPinConfigure (GPIO_PB0_CAN1RX);
GPIOPinConfigure (GPIO_PB1_CAN1TX);
GPIOPinTypeCAN (GPIO_PORTB_BASE、GPIO_PIN_0 | GPIO_PIN_1);
SysCtlPeripheralEnable (SYSCTL_Periph_CAN1);
CANInit (CAN1_base);
CANRetrySet (CAN1_base、true);
CANBitRateSet (CAN1_base、g_ui32SysClkFreq、500000);
CANIntRegister (CAN1_base、CAN1IntHandler);
CANIntEnable (CAN1_BASE、CAN_INT_MASTER | CAN_INT_ERROR | CAN_INT_STATUS);
IntEnable (INT_CAN1);
CANEnable (CAN1_base);
G_CAN1MsgRx.ui32MsgID = CAN1RXID;
G_CAN1MsgRx.ui32MsgIDMask = 0;
G_CAN1MsgRx.ui32Flags = MSG_OBJ_RX_INT_ENABLE | MSG_OBJ_USE_ID_FILTER;
G_CAN1MsgRx.ui32MsgLen = sizeof (g_ui8CAN1RxData);
CANMessageSet (CAN1_base、CAN1RXOBJECT、&g_CAN1MsgRx、MSG_OBJ_TYPE_RX);
CAN 传输:
void CAN1_Tx_function (void)
{
if (((g_CAN1MsgRx.ui32MsgID >= 51)&(g_CAN1MsgRx.ui32MsgID <= 60))
{
uint8_t ui8Count=0;
uint8_t * CAN1_Tx_msgDataPtr;
CAN1_Tx_msgDataPtr =(uint8_t *)&g_ui8CAN1TxData;
for (ui8Count=0;ui8Count<sizeof (g_ui8CAN1TxData);ui8Count++)
{
G_ui8CAN1TxData[0]= Configuration_No;
G_ui8CAN1TxData[1]= Request_Reply;
G_ui8CAN1TxData[2]=状态;
G_ui8CAN1TxData[3]= Attempt_Count Return;
G_ui8CAN1TxData[4]= Clearer_Yarn_Status;
G_ui8CAN1TxData[5]= Clearer_Status_Ready;
G_ui8CAN1TxData[6]= Fault_Event;
G_ui8CAN1TxData[7]= Fault_Length;
我必须添加更多数据来传输另一个 PCB。 如何添加另一个 CAN 帧、请引导我或搜索我以获取有关添加 CAN 帧的任何示例。
如果我必须继续 g_ui8CAN1TxData[8]=保留;或者添加 新的帧,如何添加。 请告诉我解决方案
提前感谢。
