Gast
#5434551
Hi, Versuche grad CAN am STM32 zum laufen zu bekommen. Senden klappt schon, Empfang haut nicht hin. Selbst im IRQ Handler des CAN wird nicht aufgerufen wenn ich Daten hinsende. Ideen? Oder hatt wer einen Beispilcode für die CubeMX HAL? Hab die HAL mit CubeMX erstellt und arbeite mit Atollic Truestudio. /* CAN init function */ static void MX_CAN_Init(void) { static CanRxMsgTypeDef CanRX; static CanTxMsgTypeDef CanTX; CAN_FilterConfTypeDef myFilter; hcan.Instance = CAN1; hcan.pRxMsg = &CanRX; hcan.pTxMsg = &CanTX; hcan.Init.Prescaler = 16; hcan.Init.Mode = CAN_MODE_NORMAL; hcan.Init.SJW = CAN_SJW_1TQ; hcan.Init.BS1 = CAN_BS1_12TQ; hcan.Init.BS2 = CAN_BS2_5TQ; hcan.Init.TTCM = DISABLE; hcan.Init.ABOM = DISABLE; hcan.Init.AWUM = DISABLE; hcan.Init.NART = ENABLE; hcan.Init.RFLM = DISABLE; hcan.Init.TXFP = DISABLE; if (HAL_CAN_Init(&hcan) != HAL_OK) { _Error_Handler(_FILE_, _LINE_); } myFilter.FilterNumber = 0; myFilter.FilterMode = CAN_FILTERMODE_IDMASK; myFilter.FilterScale = CAN_FILTERSCALE_32BIT; myFilter.FilterIdHigh = 0x0000; myFilter.FilterIdLow = 0x0000; myFilter.FilterMaskIdHigh = 0x0000; myFilter.FilterMaskIdLow = 0x0000; myFilter.FilterFIFOAssignment = CAN_FILTER_FIFO0; myFilter.FilterActivation = ENABLE; //myFilter.BankNumber = 14; if (HAL_CAN_ConfigFilter(&hcan, &myFilter) != HAL_OK) { /* Filter Config Error */ Error_Handler(); } }