2.2 KiB
2.2 KiB
Драйвер трансивера SN65HVD230 для STM32G0
Библиотека для работы с CAN-трансивером через аппаратный модуль FDCAN микроконтроллеров семейства STM32G0 в режиме классического CAN. Работа с пином Rs исключена, модуль всегда активен на максимальной скорости.
📌 Особенности
- Оптимизировано строго под архитектуру модуля FDCAN в STM32G0.
- Полное отсутствие динамического выделения памяти (
malloc). - Контроль таймаутов отправки и приема для предотвращения зависания шины.
🔌 Схема подключения
| Контакт модуля MCU-230 | Контакт STM32G0 | Описание |
|---|---|---|
| 3V3 | 3.3V | Питание модуля |
| GND | GND | Общая земля |
| CTX | FDCAN1_TX | Линия передачи данных FDCAN |
| CRX | FDCAN1_RX | Линия приема данных FDCAN |
⚠️ Важно: На плате MCU-230 уже распаян терминатор 120 Ом. Если узел подключается к готовой сети, этот резистор нужно выпаять.
📋 Справочник API функций
HAL_StatusTypeDef SN65HVD230_Init(SN65HVD230_t *node, FDCAN_HandleTypeDef *hfdcan_handle)— Привязка дескриптора к аппаратному хэндлеру.HAL_StatusTypeDef SN65HVD230_Start(SN65HVD230_t *node)— Активация прерываний FIFO 0 и запуск FDCAN шины.HAL_StatusTypeDef SN65HVD230_Transmit(SN65HVD230_t *node, CAN_Message_t *msg, uint32_t timeout_ms)— Отправка классического CAN-кадра.HAL_StatusTypeDef SN65HVD230_Receive(SN65HVD230_t *node, CAN_Message_t *msg, uint32_t timeout_ms)— Чтение кадра из FIFO 0 (передайтеtimeout_ms = 0для неблокирующего опроса).