Можно ли на вашем устройстве использовать виртуальный COM-порт USB? Тогда обычные вызовы через порт MATLAB ( обзор ) работают хорошо.
s1 = serial(port,'BaudRate',57600,'Parity','none','Stopbits',1, ...
'Terminator','CR/LF'); % there are more properties to play with
fopen(s1);
fprintf(s1, 'text'); % appends terminator
resp = fscanf(s1); % waits for terminator
fwrite(s1, [1 2 3 4 5], 'uint8'); % writes binary chars, no terminator
resp = fread(s1, s1.BytesAvailable, 'char'); % reads all available bytes as chars
fclose(s1);
Эти вызовы не нуждаются в наборе инструментов сбора данных, что приятно, и, по моему опыту, хорошо работает как с ASCII, так и с двоичными данными.
Однако на некоторых компьютерах мы обнаружили, что вызов FOPEN длился вечно. По какой-то причине это было связано с виртуальными COM-портами Bluetooth на некоторых ноутбуках. Итак, мы закончили писать действительно простую .NET DLL, которая обернула класс последовательного порта Microsoft .NET, а затем импортировала его в Matlab в качестве сервера ActiveX. Но, надеюсь, вышеизложенное позволит вам начать.