Начальные нули на MAC-адресе Arduino Ethernet

Как я могу передать MAC-адрес в Ethernet shield с начальными нулями?

Я меняю MAC-адрес по умолчанию с DEADBEEFFEED на что-то вроде DEADBEEFFE01. Поэтому я меняю только последнее число с 0xED на 0x01. Моя плата подключается к отдельному серверу, и когда я смотрю на MAC на этом сервере, моя плата отображается как DEADBEEFFE1.

Это не так просто, как напечатать MAC-адрес с добавленными нулями, поскольку плата фактически удаляет его.

Я просмотрел библиотеку Ethernet и увидел, что mac передается как массив uint8_t. Я думаю, именно поэтому последнее число считывается как 1 (что правильно), но передается именно так.

Есть ли способ для MAC передавать начальные нули?

, 👍2

Обсуждение

0x01 это 1. сервер печатает неправильно, @Juraj

Да, видимо, выяснил, что проблема именно в сервере., @noobiejp


1 ответ


3

Пишу это на случай, если кому-то в будущем это может быть интересно.

Значения, переданные в библиотеке Ethernet, верны. Последнее значение 0x01 должно быть равно 1 и записано правильно, 0x01 в регистрах W5500 внутри экрана Ethernet.

Где я ошибся, так это в том, как я передаю MAC-адрес на сервер. По сути, я создаю строку для сообщения json. Там я поставил %02x, чтобы убедиться, что нули заполнены.

,