امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكل با پورت سريال در متلب
نویسنده پیام
leila.66 آفلاین
تازه وارد

ارسال‌ها: 24
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۹۰

تشکرها : 0
( 2 تشکر در 2 ارسال )
ارسال: #1
مشكل با پورت سريال در متلب
سلام.من ميخوام توسط gui متلب و پورت سريال، يك رشته رو به ميكرو ارسال كنم و توسط اون رشته يك موتور پله اي رو كنترل كنم.اگر رشته مذكور رو در ترمينال متلب بنويسم موتور كار ميكنه البته پس از زدن كليد اينتر ،اما توي متلب نمي دونم اين \n رو كدوم قسمت fprintf قرار بدم تا كار كنه البته وقتي اجرا مي كنم خطا ندارم و رشته ايجاد شده رو مي بينم اما موتور حركت نميكنه اينگار چيزي به پورت سريال ارسال نميشه اينم برنامه بنظرتون مشكل از كجاست؟
ممنون
کد:
function n1_Callback(hObject, eventdata, handles)
% hObject handle to n1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
spee=get(handles.s1,'String');

stardeg=get(handles.sd1,'String');
stopdeg=get(handles.sd2,'String');

rotd=get(handles.rd,'Value');


y4=num2str(rotd);
s=strcat('#',',',spee,',',stardeg,',',stopdeg,',',y4,',',':')

m=serial('com1','baudrate',9600,'databits',8);
fopen(m);

fprintf(m,'%s',s,'\n');
fclose(m);
delete(m);
(آخرین ویرایش در این ارسال: ۲۴-شهریور-۱۳۹۰, ۱۳:۰۲:۰۵، توسط h0x00i.)
۲۴-شهریور-۱۳۹۰, ۰۰:۲۶:۴۴
ارسال‌ها
پاسخ
علي برقي آفلاین
كاربر دو ستاره
**

ارسال‌ها: 209
موضوع‌ها: 25
تاریخ عضویت: اردیبهشت ۱۳۹۰

تشکرها : 477
( 406 تشکر در 166 ارسال )
ارسال: #2
RE: مشكل با پورت سريال در متلب
(۲۴-شهریور-۱۳۹۰, ۰۰:۲۶:۴۴)leila.66 نوشته است: سلام.من ميخوام توسط gui متلب و پورت سريال، يك رشته رو به ميكرو ارسال كنم و توسط اون رشته يك موتور پله اي رو كنترل كنم.اگر رشته مذكور رو در ترمينال متلب بنويسم موتور كار ميكنه البته پس از زدن كليد اينتر ،اما توي متلب نمي دونم اين \n رو كدوم قسمت fprintf قرار بدم تا كار كنه البته وقتي اجرا مي كنم خطا ندارم و رشته ايجاد شده رو مي بينم اما موتور حركت نميكنه اينگار چيزي به پورت سريال ارسال نميشه اينم برنامه بنظرتون مشكل از كجاست؟

سلام
فكر كنم اگه به اين صورت تغيير بدي درس بشه:
کد:
fprintf(m,'%s\n',s);

من تو را دوست دارم.. دیگری تو را دوست دارد.. دیگری دیگری را دوست دارد.. و این چنین است که ما تنهاییم..
(آخرین ویرایش در این ارسال: ۲۴-شهریور-۱۳۹۰, ۲۰:۲۰:۱۰، توسط علي برقي.)
۲۴-شهریور-۱۳۹۰, ۱۰:۲۹:۰۶
ارسال‌ها
پاسخ
تشکر شده توسط : h0x00i
leila.66 آفلاین
تازه وارد

ارسال‌ها: 24
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۹۰

تشکرها : 0
( 2 تشکر در 2 ارسال )
ارسال: #3
RE: مشكل با پورت سريال در متلب
(۲۴-شهریور-۱۳۹۰, ۱۰:۲۹:۰۶)علي برقي نوشته است:
(۲۴-شهریور-۱۳۹۰, ۰۰:۲۶:۴۴)leila.66 نوشته است: سلام.من ميخوام توسط gui متلب و پورت سريال، يك رشته رو به ميكرو ارسال كنم و توسط اون رشته يك موتور پله اي رو كنترل كنم.اگر رشته مذكور رو در ترمينال متلب بنويسم موتور كار ميكنه البته پس از زدن كليد اينتر ،اما توي متلب نمي دونم اين \n رو كدوم قسمت fprintf قرار بدم تا كار كنه البته وقتي اجرا مي كنم خطا ندارم و رشته ايجاد شده رو مي بينم اما موتور حركت نميكنه اينگار چيزي به پورت سريال ارسال نميشه اينم برنامه بنظرتون مشكل از كجاست؟
ممنون
function n1_Callback(hObject, eventdata, handles)
% hObject handle to n1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
spee=get(handles.s1,'String');

stardeg=get(handles.sd1,'String');
stopdeg=get(handles.sd2,'String');

rotd=get(handles.rd,'Value');


y4=num2str(rotd);
s=strcat('#',',',spee,',',stardeg,',',stopdeg,',',y4,',',':')

m=serial('com1','baudrate',9600,'databits',8);
fopen(m);

fprintf(m,'%s',s,'\n');
fclose(m);
delete(m);

سلام
فكر كنم اگه به اين صورت تغيير بدي درس بشه:
کد:
fprintf(m,'%s\n',s);

ممنون.رشته ايجاد مي شه اما چيزي به پور ارسال نميشه يا حداقل موتور حركت نمي كنه
۲۴-شهریور-۱۳۹۰, ۱۲:۳۶:۵۴
ارسال‌ها
پاسخ
h0x00i آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 959
موضوع‌ها: 109
تاریخ عضویت: دى ۱۳۸۹

تشکرها : 2866
( 2450 تشکر در 949 ارسال )
ارسال: #4
RE: مشكل با پورت سريال در متلب
کد:
s=strcat('#',',',spee,',',stardeg,',',stopdeg,',',y4,',',':');

در مورد ارسال نشودن اطلاعات شما به پورت

کد:
fprintf(m,'#!\r',s);

:)

دوستان الکترونیکی پیشنهاد می کنم حتما برن python یاد بگیرن ...
پروژه ، مقاله ،... 
(آخرین ویرایش در این ارسال: ۲۴-شهریور-۱۳۹۰, ۱۳:۱۱:۲۹، توسط h0x00i.)
۲۴-شهریور-۱۳۹۰, ۱۳:۰۷:۳۳
وب سایت ارسال‌ها
پاسخ
leila.66 آفلاین
تازه وارد

ارسال‌ها: 24
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۹۰

تشکرها : 0
( 2 تشکر در 2 ارسال )
ارسال: #5
RE: مشكل با پورت سريال در متلب
(۲۴-شهریور-۱۳۹۰, ۱۳:۰۷:۳۳)h0x00i نوشته است:
کد:
s=strcat('#',',',spee,',',stardeg,',',stopdeg,',',y4,',',':');

در مورد ارسال نشودن اطلاعات شما به پورت

کد:
fprintf(m,'#!\r',s);
ممنون اما وقتي ; آخر دستور strcat ميذارم كلي ارور ميده و ومن درست دليل استفاده از fprintf(m,'#!\r',s);
نفهميدم و امتحانش كردم اما باز جواب نداد و اين خطاها رو داد.
??? Error using ==> serial.fopen at 72
Port: COM1 is not available. Available ports: COM2,
COM3.
Use INSTRFIND to determine if other instrument
objects are connected to the requested device.

Error in ==> gu11>n1_Callback at 184
fopen(m);

Error in ==> gui_mainfcn at 96
feval(varargin{:});

Error in ==> gu11 at 42
gui_mainfcn(gui_State, varargin{:});

Error in ==>
@(hObject,eventdata)gu11('n1_Callback',hObject,eventdata,guidata(hObject))


??? Error while evaluating uicontrol Callback

۲۴-شهریور-۱۳۹۰, ۱۷:۳۹:۴۳
ارسال‌ها
پاسخ
h0x00i آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 959
موضوع‌ها: 109
تاریخ عضویت: دى ۱۳۸۹

تشکرها : 2866
( 2450 تشکر در 949 ارسال )
ارسال: #6
RE: مشكل با پورت سريال در متلب
گاهی وقتا که برنامه مشکل داره ونیم کاره باز اجرا میشه این اشکال پیش میاد بهتره برنامه رو اصلاح کنی بعد متلب ببندی دوباره باز کنی

:)

دوستان الکترونیکی پیشنهاد می کنم حتما برن python یاد بگیرن ...
پروژه ، مقاله ،... 
(آخرین ویرایش در این ارسال: ۲۴-شهریور-۱۳۹۰, ۲۱:۲۹:۰۵، توسط h0x00i.)
۲۴-شهریور-۱۳۹۰, ۲۱:۲۸:۳۴
وب سایت ارسال‌ها
پاسخ
leila.66 آفلاین
تازه وارد

ارسال‌ها: 24
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۹۰

تشکرها : 0
( 2 تشکر در 2 ارسال )
ارسال: #7
RE: مشكل با پورت سريال در متلب
(۲۴-شهریور-۱۳۹۰, ۲۱:۲۸:۳۴)h0x00i نوشته است: گاهی وقتا که برنامه مشکل داره ونیم کاره باز اجرا میشه این اشکال پیش میاد بهتره برنامه رو اصلاح کنی بعد متلب ببندی دوباره باز کنی

من هنوزم اینگار نمیتونم رشته رو بفرستم .یه کدم برا دریافت نوشتم ولی ارور time out میده و بعدم رشته رو خالی دریافت میکنه
a=' '
۲۹-شهریور-۱۳۹۰, ۲۳:۵۶:۱۶
ارسال‌ها
پاسخ
علي برقي آفلاین
كاربر دو ستاره
**

ارسال‌ها: 209
موضوع‌ها: 25
تاریخ عضویت: اردیبهشت ۱۳۹۰

تشکرها : 477
( 406 تشکر در 166 ارسال )
ارسال: #8
RE: مشكل با پورت سريال در متلب
(۲۹-شهریور-۱۳۹۰, ۲۳:۵۶:۱۶)leila.66 نوشته است: من هنوزم اینگار نمیتونم رشته رو بفرستم .یه کدم برا دریافت نوشتم ولی ارور time out میده و بعدم رشته رو خالی دریافت میکنه
a=' '
سلام
پيشنهاد ميكنم به دستور سريالت يه timeout هم اضافه كني:
کد:
m=serial('COM1','BaudRate',9600,'DataBits',8,'Timeout',10);
timeout زمان نوشتن برای اینکه عملکرد خواندن و یا نوشتن کامل شود را مشخص می کند .
در مورد دريافت بايد بگم كه ميكرو كنترلر Terminator ارسال نمي كنه لذا متلب اونو تشخيص نمي ده و پيام زير را مي دهد:
Warning: A timeout occurred before the Terminator was reached.
براي رفع اين مشكل بايد يه ترمينيتور خالي رو تعريف كني :
کد:
set ( m , 'Terminator' , ' ' )

من تو را دوست دارم.. دیگری تو را دوست دارد.. دیگری دیگری را دوست دارد.. و این چنین است که ما تنهاییم..
(آخرین ویرایش در این ارسال: ۳۰-شهریور-۱۳۹۰, ۰۶:۱۲:۳۳، توسط علي برقي.)
۳۰-شهریور-۱۳۹۰, ۰۰:۱۴:۴۴
ارسال‌ها
پاسخ
36taregh آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 0
تاریخ عضویت: شهریور ۱۳۹۵

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #9
RE: مشكل با پورت سريال در متلب
(۳۰-شهریور-۱۳۹۰, ۰۰:۱۴:۴۴)علي برقي نوشته است:
(۲۹-شهریور-۱۳۹۰, ۲۳:۵۶:۱۶)leila.66 نوشته است: من هنوزم اینگار نمیتونم رشته رو بفرستم .یه کدم برا دریافت نوشتم ولی ارور time out میده و بعدم رشته رو خالی دریافت میکنه
a=' '
سلام
پيشنهاد ميكنم به دستور سريالت يه timeout هم اضافه كني:
کد:
m=serial('COM1','BaudRate',9600,'DataBits',8,'Timeout',10);
timeout زمان نوشتن برای اینکه عملکرد خواندن و یا نوشتن کامل شود را مشخص می کند .
در مورد دريافت بايد بگم كه ميكرو كنترلر Terminator ارسال نمي كنه لذا متلب اونو تشخيص نمي ده و پيام زير را مي دهد:
Warning: A timeout occurred before the Terminator was reached.
براي رفع اين مشكل بايد يه ترمينيتور خالي رو تعريف كني :
کد:
set ( m , 'Terminator' , ' ' )

سلام من هم همین مشکل دارم وقتی میخواهم کارکتر دریافت کنم مینویسه
Warning: Unexpected Warning: The input buffer was filled before the

Terminator was reached
ترمیناتور خالی تعریف کردم ولی مشکل رفع نشد راهی دیگه ای برای رفع این مشکل نمیدونید؟با تشکر
۱۲-شهریور-۱۳۹۵, ۲۰:۳۹:۳۴
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [مقاله] پروگرام میکرو با پورت سریال behzady 5 11,384 ۱۵-دى-۱۳۹۸, ۲۳:۱۹:۰۹
آخرین ارسال: 1نفر
  برنامه راه اندازی رله از طریق پورت شبکه (enc28j60) haisam 15 14,252 ۲۰-آبان-۱۳۹۷, ۰۹:۵۲:۵۹
آخرین ارسال: ali3000aab
Exclamation ارتباط سريال بين دو ميكرو و نمايش روي lcd با codevision ali313 13 28,959 ۰۱-شهریور-۱۳۹۷, ۱۱:۰۸:۴۳
آخرین ارسال: farhadtavakkol
  شمارنده معکوس رو Lcdگرافیکی حین خاموش روشن شدن led های یک پورت armin111 1 3,433 ۰۷-بهمن-۱۳۹۵, ۰۹:۵۸:۱۹
آخرین ارسال: aKaReZa75
  مشکل دریافت متن از پورت سریال میکرو sajadcut 1 3,260 ۱۲-آبان-۱۳۹۵, ۲۲:۱۰:۲۳
آخرین ارسال: behzady
  [سوال] خواندن از پورت سریال و نوشتن روی mmc index 0 2,246 ۲۷-مهر-۱۳۹۴, ۱۱:۵۹:۰۰
آخرین ارسال: index
  مشكل با ميكرو ATMEGA64 elec645 12 10,853 ۰۲-شهریور-۱۳۹۴, ۱۳:۳۹:۲۰
آخرین ارسال: mbir92
  مشكل در راه اندازي ميكرو atmega8 fateme67hj 9 6,255 ۲۸-خرداد-۱۳۹۴, ۱۳:۳۲:۱۲
آخرین ارسال: fateme67hj
Sad [سوال] اتصال کامپیوتر به میکرو از طریق پورت سریال Monje 11 11,438 ۱۱-خرداد-۱۳۹۴, ۱۶:۲۷:۰۷
آخرین ارسال: alira725
  ارسال کاراکترهای فارسی با پورت سریال 38505512 2 4,254 ۳۰-آبان-۱۳۹۳, ۱۲:۴۳:۰۰
آخرین ارسال: pooramin

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS