Содержание

Генератор трафика CAN на основе STM32

Базовый минимум

Подготовка

Подключение программатора

Необходимо соединить пины SWDIO, GND, SWCLK и 3.3V с соответсвующими пинами на микроконтроллере.

Сборка и прошивка

В STM32CubeIDE открыть проект.

Для сборки и прошивки используется конфигурация CAN_STm32F103C6T6 Debug

Нажать, подождать, готово!

Описание работы программы

Отправка

Отправка сообщений происходит в бесконечном цикле, находящемся в функции main.

Генерация сообщений происходит следующим образом:

Приём

Приём происходит в функции HAL_CAN_RxFifo0MsgPendingCallback.

По полученным данным вычисляется идентификатор (по тому же алгоритму CRC-11), который сравнивается с заголовком.

Вывод ошибок

Во время работы программы считается общее количество отправленных/принятых сообщений, а также считаются ошибки.

Каждый раз при возникновении ошибки (будь то несоответствие чексуммы данных, или при аппаратных ошибках) все эти данные отправляются по UART.

Для данного проекта используются следующие пины на микроконтроллере:

Для подключения из консоли можно использовать следующую команду:

picocom -b 115200 <port>

Так выглядит вывод ошибок: