Помогите с кодом can в arduino

Тема в разделе "Arduino & Shields", создана пользователем PE4ENbKA, 18 фев 2022.

?

Как программировать CAN на базе MCP2515?

  1. Объяснение работы библиотеки

    0 голосов
    0,0%
  2. Видео с разбором библиотеки

    0 голосов
    0,0%
Можно выбрать сразу несколько вариантов.
  1. PE4ENbKA

    PE4ENbKA Нуб

    Помогите организовать прием/передачу с одного и того же узла CAN.
    Взял библиотеку для работы с CAN из этого репозитория https://github.com/coryjfowler/MCP_CAN_lib. Самая лучшая на текущий момент библиотека. Она обладает возможностью отправлять сообщения стандартной и расширенной длинны.
    Моя проблема в том, что при передаче пакета в шину после этого на выходе постоянно какие то пакеты, они не несут информации и из за этого я не могу на то же самое устройство получить входное сообщение.
    Как с этим разобраться?
    И вопрос номер два, как применять эти модификаторы инициализации?
    [​IMG]

    Вопрос три как завершить передачу сообщения правильно что бы начался прием?

    Прилагаю мои жалкие попытки в ино файлах.
    Состав системы - 2 комплекта Arduino UNO + MCP2515 связанных по Ethernet с помощью шилдов на базе чипа W5100.
    Формат CAN сообщений - CAN2.0B
    Сразу скажу я новичок в программировании и проект писался в спешке.
     

    Вложения:

    • UDP_CAN_A.ino
      Размер файла:
      11,6 КБ
      Просмотров:
      88
    • UDP_CAN_B.ino
      Размер файла:
      11,6 КБ
      Просмотров:
      92
    Последнее редактирование: 18 фев 2022
  2. b707

    b707 Гуру

    так все-таки связанных по КАН или по Эзернет?! - это как бы абсолютно разные протоколы
     
  3. b707

    b707 Гуру

    посмотрел код... это что-то с чем-то...
    судя по всему, ни о циклах ни о массивах вы представления не имеете.
    Кроме того, грубая ошибка читать поля из буфера UDP пакета, не проверяя их наличие там...

    Для начала - вы пробовали просто запускать примеры и посылать сообщения от одной ардуине к другой по кан и по эзернет? работает?
     
  4. PE4ENbKA

    PE4ENbKA Нуб

    связь между ними по езернет, данные передаются. для проверки там болтается кусочек кода обрабатывающий сообщения в ком порт. Между собой данные из кан передаются. С парсингом посылки я почти разобрался, не разобрался почему передача не заканчивается и модуль МСП2515 шлет какие то пустые посылки, словно прощупывая сеть на ответ.
     
  5. PE4ENbKA

    PE4ENbKA Нуб

    передача строки собранной из посылки кан работает. если убрать мой недопарсер и оставить вывод в ком порт то все передается. Я спешил потому код выглядит как ж**па. У меня возник потом еще вопрос касаемо чтения посылок UDP, может там надо буфер чистить? Мне сложно понять как работает и CAN и Ethernet UDP, про второе инфы больше про первое нет совсем.
    Прилагаю ино файл с единственным примером во всем интернете. Его писал не я, он не работает с расширенными посылками CAN и срет какими то запятыми в не правильных местах.
    PS программирование начал изучать не сильно давно. О массивах знаю.
     

    Вложения:

    • ethToCan.ino
      Размер файла:
      5,1 КБ
      Просмотров:
      94
  6. PE4ENbKA

    PE4ENbKA Нуб

    Вот я переписал программу по нормальному. Конечно вряд ли работа ее сильно изменится.
     

    Вложения:

    • UDP_CAN_A.ino
      Размер файла:
      5,9 КБ
      Просмотров:
      114