PI C CAN тестовый код не работает должным образом - PullRequest
1 голос
/ 07 марта 2020

Я создал простой тестовый код для CAN с использованием PIC18F4580. Который состоит из 2 узлов, отправляющих данные между собой. Использует 11-битный стандартный идентификатор для связи. Узлу-1 присвоен идентификатор 10, а узлу-2 - идентификатор 20. Я попытался отобразить регистры, такие как COMSTAT, TXB0CON, RXB0CON, на ЖК-дисплее вот содержимое регистра.

COMSTAT = 0x00
TXB0CON = 0x00
RXB0CON = 0x01
  • При нажатии клавиши сначала будет последовательно отображаться содержимое COMSTAT, TXB0CON и RXB0CON на ЖК-дисплее.
  • Затем в конце будет помещено сообщение ID кадра = XX, Данные = NDx на шине CAN
  • Узел-1 помещает ND2 в поле данных D0 (N), D1 (D) и D2 (2) с DL C, равным 3, и ID = 20.
  • Точно так же Node-2 помещает ND1 в поле данных D0 (N), D1 (D) и D2 (1) с DL C, равным 3 и ID = 10 (см. Приведенный Тестовый код , данный).

Оба узла отправляют данные, но Узел-1 только получает. И показывая ID = 00 вместо 10, а полученные данные отображаются на ЖК-дисплее в виде некоторого мусора.

Ссылка на тестовый код

...