اطلاعیه

Collapse
No announcement yet.

اکو شدن دیتاهای دریافتی از سریال طبیعیه؟

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

    اکو شدن دیتاهای دریافتی از سریال طبیعیه؟

    سلام
    من یه ماژول (HC-05)دارم که از پروتکل UART برای تبادل دیتا استفاده میکنه.
    این ماژول وقتی به میکرو وصل هست هرچی رو بهش میفرستیم رو یک بار اکو میکنه به سمت فرستنده، تا امروز فکر میکردم این مدل خود ماژوله، ولی امروز 2تا پایه سریال ماژول رو بهم وصل کرم و بهش دیتا فرستادم و دیتاها اکو نشدن، فقط 1بار نشون داده شدن.
    با یه مبدل USB به سریال دیتاهای ورودی و خروجی ماژول رو بررسی کردم، دیدم اصلا اکو نداره!
    برناممو با بسکام نوشتم، و با دستور input دیتارو میگیرم و با دستور print هم دیتاهامو میفرستم، دیتاهام هم فقط رشته هستن.
    مشکل چیه؟
    ;()((void (*)(void))0x0000))

    #2
    پاسخ : اکو شدن دیتاهای دریافتی از سریال طبیعیه؟

    کسی نبود؟
    شماها وقتی به میکرو با سریال دیتا میفرستین، همون دیتارو یه بار میگیرین؟
    یا نمیگیرین؟
    ;()((void (*)(void))0x0000))

    دیدگاه


      #3
      پاسخ : اکو شدن دیتاهای دریافتی از سریال طبیعیه؟

      یه جای کار داری اشتباه میکنی فرستنده و گیرنده از هم مجرا هستند

      دیدگاه


        #4
        پاسخ : اکو شدن دیتاهای دریافتی از سریال طبیعیه؟

        نوشته اصلی توسط SAJAD-G
        سلام
        من یه ماژول (HC-05)دارم که از پروتکل UART برای تبادل دیتا استفاده میکنه.
        این ماژول وقتی به میکرو وصل هست هرچی رو بهش میفرستیم رو یک بار اکو میکنه به سمت فرستنده، تا امروز فکر میکردم این مدل خود ماژوله، ولی امروز 2تا پایه سریال ماژول رو بهم وصل کرم و بهش دیتا فرستادم و دیتاها اکو نشدن، فقط 1بار نشون داده شدن.
        با یه مبدل USB به سریال دیتاهای ورودی و خروجی ماژول رو بررسی کردم، دیدم اصلا اکو نداره!
        برناممو با بسکام نوشتم، و با دستور input دیتارو میگیرم و با دستور print هم دیتاهامو میفرستم، دیتاهام هم فقط رشته هستن.
        مشکل چیه؟
        از دستور inputbin و Printbin استفاده ن انشاله مشکلت حل میشه

        دیدگاه


          #5
          پاسخ : اکو شدن دیتاهای دریافتی از سریال طبیعیه؟

          printbin و inputbin هم گذاشتم ولی اصلا نه دیتا میگیره و نه میفرسته
          کد:
          $regfile = "m64def.dat"
          $crystal = 8000000
          Dim Header As String * 4
          Config Portd.7 = Output
          Dim X As Byte
          For X = 1 To 4
          Toggle Portd.7
          Wait 1
          Next
          Do
          Inputbin Header
          Header = "recived: " + Header
          Toggle Portd.7
          Waitms 100
          Printbin Header
          Loop
          End
          وقتی مدار رو روشن میکنم LED که به پین 7 پورت d بستم 2بار چشمک میزه و دیگه هیچ اتفاقی نمیوفته، هرچه هم دیتا میفرستم انگار نمیگیره و چیزی هم بر نمیگردونه.
          با print و input نوشته بودم، هم دیتا میگرفت و هم میفرستاد ولی وقتی دیتارو میگرفت یه بار همونو اکو میکرد.
          ;()((void (*)(void))0x0000))

          دیدگاه


            #6
            پاسخ : اکو شدن دیتاهای دریافتی از سریال طبیعیه؟

            تو استفاده از printbin و inputbin به اشتباهی رخ داد :redface: که بابت پست قبلی معذرت میخوام
            برنامه ارور داده بود و من ارور رو ندیدم و فکر کردم کامپایل شده. الان مشکل اکو حل شد
            ولی inputbin تا به اندازه متغییرش دیتا نگیره نمیزاره برنامه بره خط های بعد رو اجرا کنه :-?
            برای این مشکل پیشنهادی دارین؟
            ;()((void (*)(void))0x0000))

            دیدگاه


              #7
              پاسخ : اکو شدن دیتاهای دریافتی از سریال طبیعیه؟

              بله برا من هم با یبار پرینت کردن اطلاعات خوب بود ولی دوباره همونو میفرستادم یه پله میپرید جلوتر و فک کنم برای شما هم همینطوری اتفاق میاوفته.(به قول شما اکو)
              برای حل این مشکل و ارسال اطلاعات با دستور پرینت ،من به شما پیشنهاد میکنم که فقط از رشته استفاده کنید چون میتونید هم اعداد و هم همچیزو ارسال کنید.
              دستور printbin و inputbin با تست هایی که خودم رو این دو دستور کردم ،فقط میتون اعداد و یا متغییر هایی که در خودشون عدد جای دادن رو بفرستن.و برای ارسال دیگر اطلاعات ،خطا یا اشتباه میفرستند ،ولی با رشته میتونید همه چیز رو به راحتی بفرستی .
              حالا یکم برات توضیح بدم که باید چیکار کنی،ببین شما باید اطلاعاتی را که میخاید بفرستید رو کد کنید ،یعنی همراه با یه سری رشته (یا حروفهای معلوم) بفرستید و در سمت گیرنده از همین حروفهای معلوم برش کنید به اندازه تعداد رشته و بعد از اون بتونید استفاده کنید .و هر وقت هم که دوباره از سمت فرستنده ارسال اطلاعات داشته باشین به قول شما اکو نخواهد شد.به این مثال دقت کنید تا منظورمو خوب بفهمید:

              میکرو فرستنده:

              A = "23"
              Print "h" ; A
              Waitms 1000
              A = "hom"
              Print "h" ; A
              Waitms 1000
              و میکرو گیرنده:
              Do
              Input S
              D = Instr(s , "h&quot
              F = Mid(s , D , 9)
              A = Mid(f , 2 , 8)
              Cls
              Home
              Lcd A

              یخورده توضیح:
              ببینید میکرو فرستنده اطلاعات را با "h" کد میکنه و میفرسته.
              و میکرو گیرنده اطلاعات را از خود "h" به اندازه تعداد حروف رشته برش میکنه و داخل متغییری قرار میده.و حالا شما میتونید با متغییر بدست آمده در قسمت گیرنده اون حرف "h" را نشون ندید و از حرف "h" به بعد را برای هر کاری که دلتون میخاد استفاده کنید.
              حالا هر چی اطلاعات اکو بشه ،شما از حرف "h" به بعد را خواهی داشت.و هیچگونه خطایی در قسمت گیرنده وجود نخاهد آمد.
              امیدوارم که بدردت خورده باشه :nerd:
              به سمت نور خورشید حرکت کن،تو میتونی تابش خورشید رو حس کنی ،حتی اگه کور باشی.
              (پیش به سوی هدف)

              دیدگاه


                #8
                پاسخ : اکو شدن دیتاهای دریافتی از سریال طبیعیه؟

                منظور من از اکو اینه:
                کد من تو میکرو این بود:
                کد:
                dim s as string*10
                input s
                print "received: ";s
                این کد اونجور که فکر میکردم باید یه متغییر رشته ای با نهایت طول 10 کاراکتر تعریف کنه و مقدار دریافتی از سریال رو به طول نهایت 10 کاراکتر بریزه تو این متغییر و با دستور پرینت اول recived: رو بفرسته و بعد هم اونچیزی با اینپوت گرفته رو پشتش بچسبونه و بفرسته.
                مثلا اگه بهش فرستادیم hello برامون بفرسته recived: hello ولی میفرسته : hellorecived: hello
                منظورم از اکو این بود که با استفاده از inputbin و printbin حل شد.
                ;()((void (*)(void))0x0000))

                دیدگاه


                  #9
                  پاسخ : اکو شدن دیتاهای دریافتی از سریال طبیعیه؟

                  آره مال من هم همینجوری بود.من با این روش که گفتم حلش کردم.در هر صورت حل شد دیگه.ما هم یچی یاد گرفتیم.ممنون
                  به سمت نور خورشید حرکت کن،تو میتونی تابش خورشید رو حس کنی ،حتی اگه کور باشی.
                  (پیش به سوی هدف)

                  دیدگاه


                    #10
                    پاسخ : اکو شدن دیتاهای دریافتی از سریال طبیعیه؟

                    اره، من خودم 4ماه پیش با این یه پروژه بستم، همون موقع هم به این مشکل خوردم و فکر کردم شاید کارش همینجوریه و یه جوری با همون روشا حلش کرم، ولی تازه فهمیدم که نه نباید اینجوری باشه که به لطف دوستان حل شد.
                    ;()((void (*)(void))0x0000))

                    دیدگاه

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