Files

26 lines
2.2 KiB
Markdown

# Драйвер трансивера 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` для неблокирующего опроса).