Вы пишете строку из 8 '1' символов.
Поскольку ваши данные имеют длину 8 бит, а длина символа - 8 бит, вы можете сохранить их на одном символе.
char data = 0xFF;
write(port,&data,1);
Нужно сделать трюк.
Я использую шестнадцатеричное значение, так как 0xFF равно 11111111 в двоичном виде.Также обратите внимание, что вы должны передать указатель на ваши данные , чтобы написать функцию.если вы используете массив данных, то вы можете передать сам массив, так как массивы и указатели в основном одинаковы в C.
если у вас есть больше данных, просто сохраните их численно на массиве символов и установите количество байтов (1 в коде выше) соответственно.