Autor Tema: MATLAB recibir datos via UART con dspic30F  (Leído 3413 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado hibiscusblau

  • PIC10
  • *
  • Mensajes: 26
MATLAB recibir datos via UART con dspic30F
« en: 05 de Diciembre de 2012, 12:55:23 »
Hola,

Me estoy pelando con un dspic30F6013A, estoy transmitiendo datos via uart, con el hyperterminal y lo veo perfectamente.

Pero ahora quiero ir más allá, y pdoer ver el valor de una variable con el matlab, para poder comparar el señal que cojo del ADC y el que yo guardo en el buffer (que luego haré la FFT).

He mirado un vídeo tutorial, donde explica como configurar en simulink una conexión uart con dspic. Y lo he hecho, pero no se como puedo visualizar los datos recividos (ahora que solo mando strings) y como podré ver el buffer de adquisición de los datos del ADC.

Alguien me puede ayudar?

Existe algun tutorial completo en castellano de matlab? o me recomendais algun libro?

Os pondo el diseño en simulink que tengo hecho hasta ahora.


Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: MATLAB recibir datos via UART con dspic30F
« Respuesta #1 en: 05 de Diciembre de 2012, 23:03:27 »
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.

Código: [Seleccionar]
% 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.    
Un saludo desde Pereira - Colombia

Desconectado hibiscusblau

  • PIC10
  • *
  • Mensajes: 26
Re: MATLAB recibir datos via UART con dspic30F
« Respuesta #2 en: 07 de Diciembre de 2012, 05:27:10 »
Gracias, lo probaré!