CANEmu/Core/CANEmu/canConfig.h
Razvalyaev b024569ca4 добавлен дефайн для ошибок с корректным crc
т.к. при инверсии любого бита - автоматом появляется ошибка crc, может имеет смысл пересчитывать crc для инвертированных битов?

отключен аппаратный can пока что, потому что надо еще как-то менять baud, пока не придумал
2025-08-08 12:36:50 +03:00

35 lines
1.1 KiB
C

#ifndef CANCONFIG_H
#define CANCONFIG_H
#define CAN_ONLY_EMULATING
//#define CAN_ERROR_WITH_CORRECT_CRC
// Настройки GPIO и таймера
#define CANEMU_TX_GPIO_PORT GPIOA
#define CANEMU_TX_GPIO_PIN 12
#define CANEMU_TIM TIM2
#define CANEMU_TIM_US_TICKS 72 // Для 1 мкс при 72 МГц
#define CANEMU_TIM_CLOCK_HZ 72000000UL // частота таймера
#define CAN_MIN_PERIOD 20
#define LED_WORKING(on_off) \
do { \
if (!on_off) GPIOC->ODR |= (1U << 13); \
else GPIOC->ODR &= ~(1U << 13); \
} while (0)
// === Макросы управления GPIO ===
#define can_tx_set_1() (CANEMU_TX_GPIO_PORT->BSRR = (1U << CANEMU_TX_GPIO_PIN))
#define can_tx_set_0() (CANEMU_TX_GPIO_PORT->BRR = (1U << CANEMU_TX_GPIO_PIN))
// === Макросы управления таймером ===
#define tim_reset(TIM) ((TIM)->CNT = 0)
#define tim_get(TIM) ((uint16_t)(TIM)->CNT)
#define tim_start(TIM) ((TIM)->CR1 |= TIM_CR1_CEN)
#define tim_stop(TIM) ((TIM)->CR1 &= ~TIM_CR1_CEN)
#endif // CANEMU_H