NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2237 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 20 از 23

موضوع: پورت سریال در سی شارپ

  1. #1
    مدیر انجمن javad naderi آواتار ها
    تاریخ عضویت
    Jan 2011
    نام
    جواد نادری زاده
    نوشته ها
    830
    تشکر
    225
    تشکر شده 1,334 بار در 602 پست

    پیش فرض پورت سریال در سی شارپ

    سلام
    دستورات لازم برای خواندن و نوشتن از پورت سریال در سی شارپ رو میخاستم
    با سپاس

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2008
    نام
    علی سعید
    نوشته ها
    67
    تشکر
    62
    تشکر شده 81 بار در 37 پست

    پیش فرض

    نقل قول نوشته اصلی توسط javad naderi نمایش پست ها
    سلام
    دستورات لازم برای خواندن و نوشتن از پورت سریال در سی شارپ رو میخاستم
    با سپاس
    یک مثال خیلی ساده و کامل.
    فايل هاي پيوست شده فايل هاي پيوست شده

  4. کاربران : 4 تشکر کرده اند از شما alisaeed برای ارسال این پست سودمند:


  5. #3
    مدیر انجمن javad naderi آواتار ها
    تاریخ عضویت
    Jan 2011
    نام
    جواد نادری زاده
    نوشته ها
    830
    تشکر
    225
    تشکر شده 1,334 بار در 602 پست

    پیش فرض

    مرسی ولی میشه دستورات رو توضیح بدین؟
    ارسال
    دریافت
    تنظیمات پورت

  6. کاربران : 2 تشکر کرده اند از شما javad naderi برای ارسال این پست سودمند:


  7. #4
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2008
    نام
    علی سعید
    نوشته ها
    67
    تشکر
    62
    تشکر شده 81 بار در 37 پست

    پیش فرض

    نقل قول نوشته اصلی توسط javad naderi نمایش پست ها
    مرسی ولی میشه دستورات رو توضیح بدین؟
    ارسال
    دریافت
    تنظیمات پورت
    اول از همه شما کامپوننت serial port رو از نوار ابزار به برنامه اضافه میکنین.
    دستوراتش هم ساده هستن.
    PortName برای معرفی COM:

    کد:
    serialPort1.PortName = "COM1";
    BaudRateبرای تنظیم buadrate:

    کد:
     serialPort1.BaudRate = 9600;
    قبل از اینکه بخوایین دیتا بفرستید یا بگیرید باید پورت رو به شکل زیر باز کنین:
    کد:
    serialPort1.Open();
    و البته برای بستن پورت هم میتونین از Close استفاده کنین:
    کد:
    serialPort1.Close();
    برای فرستادن دیتا هم به شکل زیر عمل کنین:
    کد:
     char[] buff = new char[1];
     buff[0] = 'a';
    serialPort1.Write(buff, 0, 1);

    برای دریافت هم در Event مربوط به کامپوننت سریال DataReceived به شکل زیر عمل کنین:
    کد:
            private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                RxString = serialPort1.ReadExisting();
                this.Invoke(new EventHandler(DisplayText));
            }




  8. کاربران : 9 تشکر کرده اند از شما alisaeed برای ارسال این پست سودمند:


  9. #5
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    نقل قول نوشته اصلی توسط javad naderi نمایش پست ها
    سلام
    دستورات لازم برای خواندن و نوشتن از پورت سریال در سی شارپ رو میخاستم
    با سپاس
    سلام
    نمی دونم قبلا این تایپیک را دیدید؟
    بررسی پورت سریال در سی شارپ#c - ایـــــــــران میـــــــکرو ™

  10. #6
    مدیر انجمن javad naderi آواتار ها
    تاریخ عضویت
    Jan 2011
    نام
    جواد نادری زاده
    نوشته ها
    830
    تشکر
    225
    تشکر شده 1,334 بار در 602 پست

    پیش فرض

    اره دیدم ولی کلی بود من یه توضیح مختصر میخاستم که دوستمون دادن
    مرسی از همه

  11. #7
    تازه وارد
    تاریخ عضویت
    Sep 2013
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام من تازه عضو شدم ، یه سری کد کار با GSM MODEM میزارم اگه ممکنه یه توضیحاتی در مورد کدهاش بهم بدید واقعا ممنون میشم

    region Constructor#

    ()public SMSapplication
    }
    ; () InitializeComponent
    {
    endregion#
    میخواستم معنی این تیکه رو بدونم و اینکه این علامت های شارپ تو این تیکه همراه با region چیه؟
    فايل هاي پيوست شده فايل هاي پيوست شده
    ویرایش توسط ghandrz : 27-09-2013 در ساعت 23:55

  12. #8
    تازه وارد
    تاریخ عضویت
    Oct 2013
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام
    این کار را برای خواندن و نوشتن کردیم
    آیا می شه به طور زنده موتور ها را کنترل کرد؟
    ممنون

  13. #9
    عضو جدید
    تاریخ عضویت
    Oct 2012
    نوشته ها
    10
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    گه بخواهیم عبارات hex را ارسال و دریافت کنیم ، چه کار باید بنکنیم و چه دستوراتی رو چطور باید استفاده کنیم ؟؟؟؟؟؟؟؟؟؟؟

  14. #10
    کاربر فعال pirozy آواتار ها
    تاریخ عضویت
    May 2010
    نوشته ها
    337
    تشکر
    147
    تشکر شده 192 بار در 84 پست

    پیش فرض

    نقل قول نوشته اصلی توسط omidan321 نمایش پست ها
    گه بخواهیم عبارات hex را ارسال و دریافت کنیم ، چه کار باید بنکنیم و چه دستوراتی رو چطور باید استفاده کنیم ؟؟؟؟؟؟؟؟؟؟؟
    برای ارسال یک بایت به صورت hex
    کد:
    byte[] data = new byte[1];
    data[0]=0x55;
    serialPort1.Write(data, 0, data.Length);

  15. #11
    عضو جدید
    تاریخ عضویت
    Oct 2012
    نوشته ها
    10
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    دریافتش چی میشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

  16. #12
    کاربر فعال pirozy آواتار ها
    تاریخ عضویت
    May 2010
    نوشته ها
    337
    تشکر
    147
    تشکر شده 192 بار در 84 پست

    پیش فرض

    نقل قول نوشته اصلی توسط omidan321 نمایش پست ها
    دریافتش چی میشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    خوب دریافتش میشه این
    البته تو اونت مربوط به پورت سریال باید بنویسی
    کد:
    int in_data;
                in_data= serialPort1.ReadByte();
    حالا می تونی با یک تایمر اونو بخونی و تو یک لیبل نشونش بدی
    مثل کد زیر که مقدار دسیمال رو تو لیبل نشون میده
    کد:
    label1.Text = in_data.ToString();
    و اگه بخوای به صورت هکس نشون بدی از کد زیر استفاده کن
    کد:
    label1.Text = Convert.ToString(in_data, 16);

  17. تشکرها از این نوشته :


  18. #13
    کاربر فعال shahrivar88 آواتار ها
    تاریخ عضویت
    Jul 2011
    نام
    امیر عزیزی
    نوشته ها
    243
    تشکر
    173
    تشکر شده 201 بار در 109 پست
    سرزمین من\r

    دانلود کتاب آموزش پورت سریال در c#

    http://www.iranmicro.ir/forum/showthread.php?t=9629

  19. تشکرها از این نوشته :


  20. #14
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2016
    نام
    حسین
    نوشته ها
    28
    تشکر
    37
    تشکر شده 24 بار در 12 پست

    پیش فرض

    سلام
    میخام دیتای روی پورت سریال رو توی یه Richtextbox نمایش بدم
    این کد هایی که قرار دادین برا من جواب نمیده !!!
    آیا تست شده هستن؟

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

  21. #15
    کاربر فعال pirozy آواتار ها
    تاریخ عضویت
    May 2010
    نوشته ها
    337
    تشکر
    147
    تشکر شده 192 بار در 84 پست

    پیش فرض

    نقل قول نوشته اصلی توسط ZoZi نمایش پست ها
    سلام
    میخام دیتای روی پورت سریال رو توی یه Richtextbox نمایش بدم
    این کد هایی که قرار دادین برا من جواب نمیده !!!
    آیا تست شده هستن؟

    میشه لطفا یکی راهنمایی کنه چجوری و کجای برنامه باید از این کدا استفاده کنم؟
    کد:
    private void timer1_Tick(object sender, EventArgs e)
            {
                
                    if(serialPort1.BytesToRead != 0)
                    {
                      rec = serialPort1.ReadByte();
                      textBox1.Text += Convert.ToChar(rec);
                    }
            }
    در این مثال تکست باکس خاصیت مولتی لاینش فعال هست که به جای تکست باکس می تونی از richtext استفاده کنی

  22. کاربران : 2 تشکر کرده اند از شما pirozy برای ارسال این پست سودمند:


  23. #16
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2016
    نام
    حسین
    نوشته ها
    28
    تشکر
    37
    تشکر شده 24 بار در 12 پست

    پیش فرض

    سلام
    داداش دستت درد نکنه
    اما من موفق نشدم هنوز چیزی نمایش بدم
    برنامه رو دیباگ میکنم اصلا وارد این تابع نمیشه
    نمیدونم یا تابع رو جای درستی قرار ندادم یا یه مشکل دیگه ای هست؟
    من تازه دارم با ویژوال کار میکنم اصلا وارد نیستم
    این کد منه لطفا ببین مشکلش چیه؟
    در ضمن سخت افزاری هم من فقطارتباط 3 پین GND و RX و TX رو برقرار کردم و الباقی پین ها استفاده نشدن
    کد:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO.Ports;
    
    
    
    
    namespace Terminal
    {
        public partial class Terminal : Form
        {
            public Boolean opcl = false;
            SerialPort Serial = new SerialPort();
            string RxString;
            char[] buff = new char[1];
    
    
            private void button1_Click(object sender, EventArgs e)
            {
    
    
                try
                {
                    if (opcl == false)
                    {
                        Serial.PortName = comboBox1.Text;
                        Serial.BaudRate = int.Parse(comboBox2.Text);
                        Serial.Parity = (Parity)Enum.Parse(typeof(Parity), comboBox3.Items[comboBox3.SelectedIndex].ToString());
                        Serial.DataBits = int.Parse(comboBox4.Text);
                        Serial.StopBits = (StopBits)Enum.Parse(typeof(StopBits), comboBox5.Items[comboBox5.SelectedIndex].ToString());
                        Serial.Open();
                        MessageBox.Show("Step 1");
    
    
                        //MessageBox.Show(Serial.PortName + "\n" + Serial.BaudRate + "\n" + Serial.Parity + "\n" + Serial.DataBits + "\n" + Serial.StopBits);
                        button1.Text = "Disconnect";
                        opcl = true;
                    }
                    else
                    {
                        Serial.Close();
                        button1.Text = "Connect";
                        opcl = false;
                    }
                }
                catch
                {
                    MessageBox.Show("Error Opening Serial Port");
                }
            }
    
    
    
    
            private void checkBox1_CheckedChanged(object sender, EventArgs e)
            {
                if (checkBox1.Checked == true)
                {
                    this.TopMost = true;
                }
                else
                {
                    this.TopMost = false;
                }
            }
    
    
            private void timer1_Tick(object sender, EventArgs e)
            {
                if (Serial.BytesToRead != 0)
                {
                    int rec = Serial.ReadByte();
                    richTextBox1.Text += Convert.ToChar(rec);
                }
            }
    
    
            public Terminal()
            {
                InitializeComponent();
            }
    
    
    
    
        }
    }
    ویرایش توسط ZoZi : 12-03-2017 در ساعت 00:36

  24. #17
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2016
    نام
    حسین
    نوشته ها
    28
    تشکر
    37
    تشکر شده 24 بار در 12 پست

    پیش فرض

    سلام مجدد
    آقا اگه من بخام مداام پورت سریال رو چک کنم هر وقت دیتایی اومد دریافت کنم و توی یه ریچ تکست باکس نمایش بدم چیکار کنم
    این دستوری که شما قرار دادین یه لحظه دریافت میکنه و دیگه تمام (بصورت دائمی نیست)
    یه چیزی میخام مثل ترمینال کدویژن هر 16 بایتی که نمایش میده یه اینتر بخوره بره خط بعدی الباقی دیتا رو به همین صورت تا انتها نمایش بده

    ممنون میشم دقیق تر و با توضیحات راهنمایی کنید
    سپاس

  25. #18
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    باید از رویداد (Event ) DataReceived استفاده کنید.
    مثالش هم داخل msdn هست.
    SerialPort.DataReceived Event (System.IO.Ports)

  26. #19
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2016
    نام
    حسین
    نوشته ها
    28
    تشکر
    37
    تشکر شده 24 بار در 12 پست

    پیش فرض

    برادر من جواب نمیده
    الان مشکل خوندن از پورت نیست مشکل نمایش دادن چیزی که خوندیمه
    بعد از خوندن میخام دیتا رو توی یه تکست باکس نمایش بدم اما ارور میده

    کد:
     private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
            {
                SerialPort sp = (SerialPort)sender;
                MessageBox.Show("ok1");
                while (i < 16)
                {
                    buffer += Serial.ReadExisting();
                    i++;
                }
                if(i == 16)
                textBox1.Text = "DDD";
                buffer = null;
                MessageBox.Show("ok2");
            }
    الان خطی که قرمز کردم مشکل این داستانه
    نمیدونم چرا وقتی یه تکست باکس توی وقفه سریال استفاده میکنم هنگام اجرای برنامه خطا میگیره ؟!!
    کسی میدونه کجا و چجوری باید این مقدار خوانده شده از سریال رو نمایش بدم

  27. #20
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2016
    نام
    حسین
    نوشته ها
    28
    تشکر
    37
    تشکر شده 24 بار در 12 پست

    پیش فرض

    نقل قول نوشته اصلی توسط pirozy نمایش پست ها
    کد:
    private void timer1_Tick(object sender, EventArgs e)
            {
                
                    if(serialPort1.BytesToRead != 0)
                    {
                      rec = serialPort1.ReadByte();
                      textBox1.Text += Convert.ToChar(rec);
                    }
            }
    در این مثال تکست باکس خاصیت مولتی لاینش فعال هست که به جای تکست باکس می تونی از richtext استفاده کنی
    سلام داداش
    ببخشید میشه بگی تو کدی که قرار دادی rec رو چی تعریف کردی ؟
    یا اگه ممکنه کد رو کامل برام بزاری تا از روش برنامم رو بنویسم
    ممنون

صفحه 1 از 2 12 آخرینآخرین

موضوعات مشابه

  1. بررسی پورت سریال در سی شارپ#c
    توسط mzarkoob در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 35
    آخرين نوشته: 08-07-2014, 00:01
  2. ذخیره نام پوشه به زبان فارسی!!
    توسط sarab1 در انجمن میکرو کنترلر های 32 بیتی(arm)
    پاسخ: 14
    آخرين نوشته: 27-08-2013, 14:03
  3. دسترسی به پورت ها در مد fast
    توسط mehdi_nxp در انجمن LPC series (NXP)
    پاسخ: 9
    آخرين نوشته: 16-07-2012, 09:54
  4. بررسی وقفه پورت سریال lpc2378
    توسط mzarkoob در انجمن LPC series (NXP)
    پاسخ: 14
    آخرين نوشته: 18-12-2011, 10:06

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •