انجمن های گفتگوی روبوایکیو

لطفا به سیستم وارد یا ثبت‌نام کنید.

لطفا برای ورود نام کاربری و رمز عبورتان را وارد نمایید

لطفا برای استفاده بهتر از انجمن، ثبت نام کنید!

نویسنده موضوع: ماژول USB رادشید  (دفعات بازدید: 2029 بار)

0 کاربر و 1 مهمان درحال دیدن موضوع.

آفلاین 9up

  • کاربر جدید
  • *
  • ارسال: 1
  • امتیاز: 0
    • ديدن مشخصات
ماژول USB رادشید
« : 18 آذر, 1391, 11:32:50 »
با سلام و عرض خسته نباشید خدمت اساتید
من با میکروکنترلر PIC و توسط واحد USART داخلی اون و VB.net 2010 با پورت سریال ارتباط دو طرفه برقرار کردم و جوابی بسیار عالی گرفتم.
حالا که می خواهم از ماژول USB استفاده کنم، اطلاعات ارسالی توسط میکرو، در محیط VB نماشی نامطلوب دارد.
فرض می کنیم رشته "17.1" دریافتی از ماژول را می خواهیم نمایش دهیم. گاهی اوقات فقط "1" و گاهی اوقات عدد "1." نمایش داده میشود.
مشکل عجیبی است که واقعا من رو درگیر کرده.
در حقیقت اطلاعات درست دریافت میشود ولی در نمایش آن مشکل دارم. در صورتی که همین اطلاعات در پورت سریال مستیقم مشکلی نداشت.
به احتمال خیلی زیاد مشکل در برنامه نویسی VB است که از شما خوهش دارم که کمکم کنید.
کد میکرو:

HSerOut [Dec FT/10,".",Dec FT Dig 0]
کد VB:
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
    ReceivedText(SerialPort1.ReadExisting())    'Automatically called every time a data is received at the serialPort
End Sub
Private Sub ReceivedText(ByVal [text] As String)
compares the ID of the creating Thread to the ID of the calling Thread
    If Me.rtbReceived.InvokeRequired Then
        Dim x As New SetTextCallback(AddressOf ReceivedText)
        Me.Invoke(x, New Object() {(text)})
    Else
        Me.rtbReceived.Text = [text]
End Sub

آفلاین beygi

  • کاربر جدید
  • *
  • ارسال: 1
  • امتیاز: 2
    • ديدن مشخصات
پاسخ : ماژول USB رادشید
« پاسخ #1 : 21 آذر, 1391, 12:09:09 »
تجربه‌ی من در کار با مبدل های یو اس بی به سریال اینه که این مبدل ها BaudRate نهایی پورت سریال که همون 115200 باشه رو درست نمیتونن هندل کنن و اطلاعات به شکل نصفه و نیمه توی مقصد دریافت میشه دقیقا مثل همین مشکلی که شما داشتید . برای رفع مشکلتون میتونید BaudRate رو روی عدد کمتری قرار بدید مثلا 9600 . برای تست دریافت درست اطلاعات هم قبل از اینکه سراغ کدتون برید خروجی رو توی نرم افزار هایی مثل Putty (در ویندوز) ویا نرم افزار GtkTerm (در سیستم های گنو/لینوکس ) ببینید

آفلاین radshid

  • مدیر انجمن ها
  • کاربر جدید
  • *****
  • ارسال: 2
  • امتیاز: 1
    • ديدن مشخصات
پاسخ : ماژول USB رادشید
« پاسخ #2 : 23 آذر, 1391, 01:36:18 »
همانطور که دوست خوبمون توضیح دادند میتونه از باد ریتتون باشه
لطفا با یک باد ریت کمتر تست نمایید
در ضمن از برنامه های آماده سریال استفاده نمایید برای نشان دادن بایت های ارسالی توسط دستگاهتون
اگر هم تبادل اطلاعات بسیار زیادی دارید لطفا بعد از ارسال حدودی هر 100 بایت یک تاخیر 20 میلی ثانیه ای بین پک های ارسالیتون قرار بدید
برنامه ای که با سریال عادی کار میکنه یا با ماژول usb2com نبایداز نظر ساختار برنامه نویسی ویندوز متفاوت باشه.
موفق باشید