اطلاعیه

Collapse
No announcement yet.

دیتا های ارسالی به متلب از پورت سریال

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    دیتا های ارسالی به متلب از پورت سریال

    لام من میخوام روی متلب پورت سریال ایجاد کنم ولی نمی تونه دیتا ها رو بخونه و ارور زیر را می دهد اگه بلدید لطفا کمکم کنید
    Warning: Unsuccessful read: The specified amount of data was not returned within the Timeout period.
    نیاز شدید و سریع دارم اگه برنامه ای که پورت سریالو بگیره و رسم کنه دیتا های دریافتی رو همینجا قرار بدید
    اینم برنامه من اگه اشکالی دارد بهم بگید مرسی.
    a=1;
    j=0;
    obj = serial('COM4','BaudRate',2400);
    while a==1
    for i=1:240
    fopen(obj);
    msg= fscanf (obj) ;
    b=+msg;
    fclose(obj);
    end
    n=b\240;
    c=n;
    j=+1;
    x=2:2:240;
    plot (x,n)
    if j==721
    j=1;
    end
    end
    جدیدترین ویرایش توسط اشکان غفارزاده; ۲۲:۵۸ ۱۳۹۵/۰۵/۲۵.

    #2
    پاسخ : دیتا های ارسالی به متلب از پورت سریال

    سلام
    اول اینکه کد ها رو در تگ code قرار بدید که بشه راحت خوندش...
    این انجمن به رایگان اطلاعات رو share میکنه...
    کد زیر رو قبلا خودم استفاده کردم و جواب داده:

    کد:
    function receive_frame = serial_read(PortName, Baudrate, DestinationID, ...
        DesMemoryAddress, DataLength)
    %
    %  byte[] Read_Frame = [ DestinationID, SourceID, CMD,
    %             DestinationMemoryType, DesMemAddress_Lower,
    %             DesMemAddress_Higher, SourceMemType, SouMemAddress_Lower, 
    %             SouMemAddress_Higher, DataLength, CRC_Higher, CRC_Lower];
    %
    
    CMD = 0;             % Frame type (1==write, 0==read)
    DesMemoryType = 0;   % PAC memory type (1==EEprom, 0==RAM)
    SourceID = 61;       % Not important
    SouMemType = 0;      % Not important
    SouMemAdd_Low = 100; % Not important
    SouMemAdd_High = 0;  % Not important
    DesMemAdd_Byte = typecast(uint16(DesMemoryAddress), 'uint8');
    
    Read_Frame = [DestinationID, SourceID, CMD, DesMemoryType, ...
        double(DesMemAdd_Byte(1)), double(DesMemAdd_Byte(2)), ...
        SouMemType, SouMemAdd_Low, SouMemAdd_High, DataLength];
    
    CRC = CRC16_Ram(Read_Frame);
    CRC_Byte = typecast(uint16(CRC), 'uint8');
    
    Read_Frame = [DestinationID, SourceID, CMD, DesMemoryType, ...
        double(DesMemAdd_Byte(1)), double(DesMemAdd_Byte(2)), ...
        SouMemType, SouMemAdd_Low, SouMemAdd_High, DataLength, ...
        CRC_Byte(2), CRC_Byte(1)];
    
    sp = serial(PortName);
    sp.BaudRate = Baudrate;
    fopen(sp);
    fwrite(sp, Read_Frame);
    pause(.5)
    receive_frame = fread(sp, DataLength + 7);
    fclose(sp);
    جدیدترین ویرایش توسط اشکان غفارزاده; ۲۲:۵۷ ۱۳۹۵/۰۵/۲۵.
    تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

    www.intelart.ir


    ساخت کنترلر دما PID فازي با AVR [آموزشی]

    دیدگاه


      #3
      پاسخ : دیتا های ارسالی به متلب از پورت سریال

      با سلام من با فانکشن کار نکردم اون خط اول رو ارور میده چه تغییراتی باید توی این برنامه بدم درس بشود COM4 &BAUDRATE=2400
      ممنون میشم اگه جواب بدید
      جدیدترین ویرایش توسط aliakbar1372; ۰۹:۲۶ ۱۳۹۵/۰۵/۲۶.

      دیدگاه


        #4
        پاسخ : دیتا های ارسالی به متلب از پورت سریال

        سلام
        خب چه اروری؟؟؟؟
        تصویر ارور رو هم بذارید تا بشه نظر داد...
        تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

        www.intelart.ir


        ساخت کنترلر دما PID فازي با AVR [آموزشی]

        دیدگاه


          #5
          پاسخ : دیتا های ارسالی به متلب از پورت سریال

          چرا من نمی تونم فایل پیوست کنم؟؟
          اروری که میدهد این است
          serial_read(PortName, Baudrate, DestinationID, DesMemoryAddress, DataLength)
          Undefined function or variable 'PortName'.
          جدیدترین ویرایش توسط aliakbar1372; ۱۱:۱۲ ۱۳۹۵/۰۶/۰۱.

          دیدگاه


            #6
            پاسخ : دیتا های ارسالی به متلب از پورت سریال

            هنوز آپلودسنتر راه اندازی نشده
            ببینید به اون متغیرها که در واقع آرگومان اون فانکشن هستند گیر میده...قبل از اجرای اون فانکشن متغیرهای ورودی فانکشن رو باید تعریف کنید...مثلا اون portname یا baudrate باید رشته ای باشند و اسم پورت و مقدار باودریت رو تعریف میکنند...
            مثلا:


            PortName = 'COM8'
            Baudrate='9600'
            تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

            www.intelart.ir


            ساخت کنترلر دما PID فازي با AVR [آموزشی]

            دیدگاه


              #7
              پاسخ : دیتا های ارسالی به متلب از پورت سریال

              یعنی باید به این صورت باشد:
              sp = serial('com4;
              sp.BaudRate = 2400;

              دیدگاه

              لطفا صبر کنید...
              X