View Full Version : مشکل استفاده از پورت RS-232
saeed9982
یک شنبه 20 اسفند 1385, 17:29 عصر
با عرض سلام
من با میکرو کنترلavr اطلاعات را به صورت سریال به port rs-232 می فرستم و توسط vb با دستور do loop until میگیریم ولی این دستور یه مشکل داره تا زمانی که از پورت چیزی دریافت نکنه تو حلقه گیر می کنه .من میخوام همواره پورت چک بشه بدون اون که تو حلقه گیر بکنه و از تایمر هم نمی خواهم استفاده کنم .اگه ممکنه منو راهنمایی کنید ؟
__H2__
دوشنبه 21 اسفند 1385, 13:50 عصر
سلام
عزیز جان بهتر است به سایتی الکترونیکی سری بزنید! اینجا برنامه نویس وجود دارد ولی بعید میدانم که کسی در اینجا با بیس کام کار کرده باشد.
اگر دارید مستقیم با برنامه نویسی به RS-232 وصل میشوید، پیشنهاد میکنم از امکانات داخلی خود AVR استفاده کنید و برای دریافت اطلاعات از بردارهای وقفه کمک بگیرید. تا وقتی ارسال تمام شد و یا داده ی جدیدی رسید برنامه تان اجرا شود. (پروسه اصلی را معطل دریافت اطلاعات نکنید)
mpmsoft
دوشنبه 21 اسفند 1385, 13:53 عصر
عزیز جان باید بزاریش تو تایمر
()private sub Time1_timer
if com.inputBufferSize > 0 then
msgbox com.inpute
end if
end sub
ehsan_electronic
چهارشنبه 23 اسفند 1385, 14:12 عصر
سلام ، روشی که دوستمون MPMSOFT مطرح کردند خوبه ولی به نظر من از تایمر استفاده نکنید بهتره ، چون خود تایمر هم ممکنه کندی در برنامه بوجود بیاره و بعضی مواقع اطلاعات را از دست بده.
بهتر از حالت وقفه Mscomm32.ocx استفاده کنید.
Private Sub MSComm_OnComm ()
Select Case MSComm1.CommEvent
Case comBreak ' A Break was received.
MsgBox("Break received")
Case comCDTO ' CD (RLSD) Timeout.
Case comCTSTO ' CTS Timeout.
Case comDSRTO ' DSR Timeout.
Case comFrame ' Framing Error
Case comOverrun ' Data Lost.
Case comRxOver ' Receive buffer overflow.
Case comRxParity ' Parity Error.
Case comTxFull ' Transmit buffer full.
Case comEvCD ' Change in the CD.
Case comEvCTS ' Change in the CTS.
Case comEvDSR ' Change in the DSR.
Case comEvRing ' Change in the RI.
Case comEvReceive
Case comEvSend
End Select
End Sub
(برنامه را در Word کپی کنید و با گزینه چپ چین آنرا مرتب و بعد مطالعه کنید.)
__H2__
چهارشنبه 23 اسفند 1385, 16:05 عصر
سلام
میبخشید من فکر کردم مشکل شما در داخل AVR است ولی حالا که سوال را دقیق تر خواندم متوجه شدم شما در داخل رایانه و با VB مشکل دارید.
میبخشید درست متوجه نشدم.
راه حل دوستان کاملا مناسب است.
البته من VB6 مدتها است کار نکرده ام ولی در VB8 ماژول ارتباطات سریال رویدادی دارد که رسیدن داده ها را اطلاع میدهد، شاید در VB6 و کامپونت MSComm نیز چنین رویدادی باشد، اگر باشد استفاده از این رویداد بهتر است.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.