03-29-2025, 03:57 PM
Za Init STM32F407 CAN1
Za slanje
Radi kao DOXA!
Code:
/* USER CODE END CAN1_Init 1 */
hcan1.Instance = CAN1;
hcan1.Init.Prescaler = 16;
hcan1.Init.Mode = CAN_MODE_NORMAL;
hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ;
hcan1.Init.TimeSeg1 = CAN_BS1_13TQ; //CAN_BS1_1TQ <<<<<<<< 13
hcan1.Init.TimeSeg2 = CAN_BS2_2TQ; //CAN_BS2_1TQ <<<<<<<< 2
hcan1.Init.TimeTriggeredMode = DISABLE;
hcan1.Init.AutoBusOff = DISABLE;
hcan1.Init.AutoWakeUp = DISABLE;
hcan1.Init.AutoRetransmission = DISABLE;
hcan1.Init.ReceiveFifoLocked = DISABLE;
hcan1.Init.TransmitFifoPriority = DISABLE;
if (HAL_CAN_Init(&hcan1) != HAL_OK)
Za slanje
Code:
HAL_CAN_Start(&hcan1);
HAL_CAN_ActivateNotification(&hcan1, CAN_IT_RX_FIFO0_MSG_PENDING);
CAN_TxHeaderTypeDef txHeader;
uint8_t txData[8] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88};
uint32_t txMailbox;
txHeader.DLC = 8;
txHeader.IDE = CAN_ID_STD;
txHeader.RTR = CAN_RTR_DATA;
txHeader.StdId = 0x123;
HAL_CAN_AddTxMessage(&hcan1, &txHeader, txData, &txMailbox);
Radi kao DOXA!
