Hace unos meses atrás realice un programa en MATLAB, el cual, recibía datos provenientes de un PIC184550, el programa es bastante básico. A continuación se enseña el código.
% Cerrar Todo
close all
clear
clc
% Cerrar puerto serial si ya está abierto
s = instrfind;
if ~isempty( s )
fclose( s );
delete( s );
clear s
end
% Configuración de la comunicación serial
SerPIC = serial('COM1');
set(SerPIC,'BaudRate',9600);
set(SerPIC,'DataBits',8);
set(SerPIC,'Parity','none');
set(SerPIC,'StopBits',1);
set(SerPIC,'FlowControl','none');
fopen(SerPIC);
% Vectores que contienen la información recibida
C=[];
DATOS = [];
% Se reciben los datos
for k=1:40
C = [C fread(SerPIC, 1, uint8)]
end
fclose(SerPIC);
i = 0;
% Rutina que convierte los datos recibidos a decimal
while(i<=40)
C1 = strcat(C( i + 1), C( i + 2), C( i + 3), C( i + 4));
C1 = hex2dec(C)
DATOS = [DATOS C1];
i = i + 4;
end
La verdad no me acuerdo si esta es la versión final del programa (se hicieron muchas pruebas), además, no tengo donde probar el código ya que no poseo computador con puerto serial, espero sea útil.