Как написать двоичное представление через последовательный порт в c - PullRequest
0 голосов
/ 24 июня 2019

Я хочу записать "11111111" через соединение через последовательный порт в C, однако write () из будет читать каждый из 1 как символ и отправлять двоичное представление 1, которое равно "0011 0001", как можно Я решаю эту проблему. И я использую код отсюда, чтобы открыть и записать через последовательный порт Как открывать, читать и писать с последовательного порта в C?

char * data = "11111111"; char c = strtol (данные, 0, 2);

записи (порт, с, 8); * +1007 *

не работает. Он может быть скомпилирован, но сигнал не отправлен, подтвержденный осциллографом.

1 Ответ

0 голосов
/ 24 июня 2019

Вы пишете строку из 8 '1' символов.

Поскольку ваши данные имеют длину 8 бит, а длина символа - 8 бит, вы можете сохранить их на одном символе.

char data = 0xFF;
write(port,&data,1);

Нужно сделать трюк.

Я использую шестнадцатеричное значение, так как 0xFF равно 11111111 в двоичном виде.Также обратите внимание, что вы должны передать указатель на ваши данные , чтобы написать функцию.если вы используете массив данных, то вы можете передать сам массив, так как массивы и указатели в основном одинаковы в C.

если у вас есть больше данных, просто сохраните их численно на массиве символов и установите количество байтов (1 в коде выше) соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...