اطلاعیه

Collapse
No announcement yet.

serial port

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

    serial port

    سلام ...
    دوتا سوال داشتم:
    اول اینکه امکان داره یک نفر بگه چطور میشه از ویزوال بیسیک (6) استفاده کرد برای فرستادن دیتا به پورت سریال ؟ تا جایی که یادم هست قبلا تو اینترنت دیده بودم سورس کدش را ولی الان هرچی گشتم نبود. یکی از دوستان تو همین سایت اپلود کرده بود برنامش را که کار نکرد(اسم فایلش هم کپی او پورت بود)
    سوال دومم که تقریبا مهمتره اینکه : فرض کنید قصد داریم از پورت سریال یک فایل هگز را بفرستیم به میکرو و میکرو بگیره و در ایپیرام ذخیره کنه . قسمت ایپیرام فعلا مطرح نیست ولی می خوام بدونم اگر بخوام اطلاعات ارسالی از پورت سریال را بگیرم و ذخیره کنم اول توی یک ارایه که بعد از اونتو بریزم توی ایپیرام .... باید چه کار کنم؟برای دادن دیتا به میکرو تقریبا مشکلی نیست و اتصالش را برقرار کردم و تست هم کردم به این صورت که هر دکمه روی کیبرد که فشرده می شه 2یا 3 لحظه بعد یک ال ای دی روشن یا خاموش می شه . البته قانونی نداره چون مثلا اگر هگز مربوط به کلید " ا " 61باشه همه ی پین های پورت روشن میشه .... به هرحال مهم نیست . این چیزی که می خوام بدونم اینه که اگر بخوام کل یک فایل که شاید چندین کیلو بایت باشه را بفرستم به میکرو که بریزه به ایپیرام , چطور باید بگیرم . این برنامه ای که میگم را میذارم اینجا ولی کامل نیست انطوری فقط وقتی یک بایت فرستاده شه می شه ریختش توی یک ارایه
    نکته : امکان داره که نرخ فرستادن دیتا به میکرو را طوری تنظیم کرد که بشه تو میکرو برنامه را طوری بنویسیم که بایت به بایت از فایلی که داره میاد رو بگیره و بفرسته به ایپیرام و بعد بایت بعدی؟
    لطفا , اگه امکان داره سریع تر کمکم کنید ,چون وقت زیادی ندارم...ممنون

    Config Serialout = Buffered , Size = 20
    Enable Interrupts
    On Urxc Misr
    Enable Urxc

    Do

    Loop
    End
    Misr:
    For I = 0 To 50
    Ar = Udr
    Next

    #2
    پاسخ : serial port

    ببین دوست من جواب سوال اولت اینه که شما باید یک ادیتور هگز فایل بسازی.
    یعنی برنامه ایی بسازی که سورس هگز یک فایل رو باز کنه و بایت به بایت روی رجیستر پورت سریال کامپیوتر قرار بده واین نیاز به آموزش برنامه نویسی داره اینجا و بصورت مختصر نمیشه توضیح داد.

    جواب سوال دوم:
    شما باید برای میکرو دریافت رو بصورت اینتراپتی تعریف کنی یعنی RX بصورت اینتراپتی باشه و یک آرایه با تعداد بالا بسازی و یک متغیر به عنوان اندیس آرایه از نوع همون آرایه تعریف کنی و در داخل روتین وقفه آرایه را که بجای اندیسش متغیر مربوطه رو گذاشتی برابر با رجیستر UDR قرار بدی و در زیر این خط یک واحد به متغیر اندیس اضافه کنی
    یعنی هر بار که یک بایت میاد بطور اتوماتیک و بترتیب در اعضای آرایه چیده میشه.بهمین صورت میتونی کل فایل رو داشته باشی یا اینکه مستقیما رجیستر UDR رو خونه های حافظت باز بصورت اندیسی بچینی که دیگه نیاز به آرایه نداری
    موفق باشی
    خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

    دیدگاه


      #3
      پاسخ : serial port

      این مقاله در مورد راه اندازی پورت سریال توسط ویژوال بیسیک است:
      فایل های پیوست شده

      دیدگاه


        #4
        پاسخ : serial port

        ممنون از اساتید گرامی ...
        اقای نجفی قسمت حلقه برای دریافت بایت به بایت و ریختن توی ارایه را متوجهم اما می خوام بدونم که استفاده از همین روش (وقفه ای) درسته یا اینکه باید از دستور ویتکی یا اینکی استفاده کنم برای اینکار که با توجه به فرمایش شما فکر کنم همین کار درسته . ممنون از کمکتون . اما اگر امکان داره برای قسمت اول بیشتر من را راهنمایی کنید...

        جناب حیاتی دست شما هم درد نکنه , ممنون بابت کمکتون

        دیدگاه


          #5
          پاسخ : serial port

          من با بیسیک کار نمی کنم
          خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

          دیدگاه


            #6
            پاسخ : serial port

            سلام مجدد...
            من برنامه ای که برای ارتباط با پورت سریال هست را دیدم و فایلی که لینکش را در بالا دادین را هم همین طور . مشکلی که وجود داره اینه که اصلا اون چیز هایی که در فایل توضیح داده شده در ویزوال بیسیک 6 که من استفاده می کنم نمی شه نوشت به عنوان پروپرتی و فکر می کنم اون فایل برنامه هم باید به همین دلیل ارور بده ...
            به نظرتون باید از نسخه ی دیگه ای استفاده کنم ؟
            دات نت یا چیز دیگه ای ...
            oo:

            دیدگاه


              #7
              پاسخ : serial port


              نوشته اصلی توسط boyironi
              سلام مجدد...
              من برنامه ای که برای ارتباط با پورت سریال هست را دیدم و فایلی که لینکش را در بالا دادین را هم همین طور . مشکلی که وجود داره اینه که اصلا اون چیز هایی که در فایل توضیح داده شده در ویزوال بیسیک 6 که من استفاده می کنم نمی شه نوشت به عنوان پروپرتی و فکر می کنم اون فایل برنامه هم باید به همین دلیل ارور بده ...
              به نظرتون باید از نسخه ی دیگه ای استفاده کنم ؟
              دات نت یا چیز دیگه ای ...
              oo:
              سلام
              دوست عزیز من اون مقاله را خوندم و برنامه اش رو هم تست کردم و جواب میده.
              شما باید کامپوننت Microsoft command 6 که مربوط به فایل Mscom32.ocx است را فراخوانی کنید و قتی فراخوانی کردید یک آیکن به شکل تلفن در روی فرم شما باید ظاهر شود.
              من خودم جواب گرفتم.
              اگر مشکل داری بگو تا پروژه اش رو بزارم.

              دیدگاه


                #8
                پاسخ : serial port

                خیلی ممنون می شم اگر این لطف را بکنی , چون اینطوری متوجه نمیشم... :job:

                دیدگاه


                  #9
                  پاسخ : serial port

                  خب فهمیدم مشکل از کجا بوده...
                  اینجا می گم که اگر کس دیگری هم با این مشکل روبرو شد , سریع تر به جواب برسه...
                  اول باید کلید ترکیبی کنترل+تی را بزنید و از منویی که ظاهر میشه روی :microsoft comm control 6 کلیک کنیدو تیک بزنید.
                  بعد که شکل تلفن اومد دست چپ . اون را بکشید توی فرمتون و الباقی راهم با توجه به لینکی که دوست خوبمون اقای حیاتی گذاشتن انجام بدین...

                  دیدگاه


                    #10
                    پاسخ : serial port

                    سلام .
                    یک مشکل دیگه پیدا کردم :cry: : هر دیتایی که می فرستم فرقی نداره چی باشه , تو میکرو یک چیز دیگه
                    دریافت می شه!!!
                    به نظرتون مشکل از چیه ؟ شما تست کردید درست جواب داد ؟

                    Dim out() As Byte
                    Dim a As Byte

                    Private Sub Command1_Click()

                    End Sub

                    Private Sub send_Click()
                    MSComm2.CommPort = 1
                    MSComm2.Settings = "9600,n,8,1"
                    MSComm2.PortOpen = True
                    a = b11110000
                    MSComm2.Output = "a"


                    MSComm2.PortOpen = False
                    End Sub
                    نه این طوری میشه . نه اینکه اگر متغیر a را تو کوتیشن نزارم...
                    :angry:

                    دیدگاه


                      #11
                      پاسخ : serial port

                      نوشته اصلی توسط boyironi
                      سلام .
                      یک مشکل دیگه پیدا کردم :cry: : هر دیتایی که می فرستم فرقی نداره چی باشه , تو میکرو یک چیز دیگه
                      دریافت می شه!!!
                      به نظرتون مشکل از چیه ؟ شما تست کردید درست جواب داد ؟

                      Dim out() As Byte
                      Dim a As Byte

                      Private Sub Command1_Click()

                      End Sub

                      Private Sub send_Click()
                      MSComm2.CommPort = 1
                      MSComm2.Settings = "9600,n,8,1"
                      MSComm2.PortOpen = True
                      a = b11110000
                      MSComm2.Output = "a"


                      MSComm2.PortOpen = False
                      End Sub
                      نه این طوری میشه . نه اینکه اگر متغیر a را تو کوتیشن نزارم...
                      :angry:
                      :cry2:

                      دیدگاه

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