ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 20
  1. #1
    2009/03/28
    7
    0

    serial portدرvisual c#

    سلام به همگی
    من میخوام یک آرایه 128تایی از اعداد از نوع charاز طریق serial portبفرستم.این برنامه تو محیط visual c#.کسی برنامشو داره؟parityوstop bitونرخ باود کجاتنظیم میشه؟ممنون میشم کمک کنید.
  2. #2
    2008/10/30
    94
    0

    پاسخ : serial portدرvisual c#

    سلام ،اگه با میکرو می خواید بفرستید باید سرعت توی برنامه میکرو مشخص کنید
    برای کامپیوتر هم باید کامپوننتش بیاری بعد مشخصات رو اونجا معین کنی
  3. #3
    2009/03/28
    7
    0

    پاسخ : serial portدرvisual c#

    سلام به همگی
    من کد زیرو نوشتم.اما وقتی برنامه را اجرا می کنم کلا سیستم قل می کنه.کسی می دونه چرا؟
    اصلا این برنامه میتونه یک آرایه از اعداد از نوع
    Int یاchar
    بفرسته؟ private void btncod_Click(object sender, EventArgs e)
    {
    byte[] str = new byte[5];
    str[0] = 12;
    str[1] = 24;
    str[2] = 102;
    str[3] = 215;
    str[4] = 2;
    string portName = "COM3";
    int buadRate = 9600;
    SerialPort serialPort = new SerialPort(portName, buadRate);
    serialPort.DtrEnable = true;
    serialPort.RtsEnable = true;
    serialPort.Handshake = Handshake.None;
    serialPort.Parity = Parity.None;
    serialPort.StopBits = StopBits.One;
    serialPort.Open();
    serialPort.Write(str, 0, str.Length);
    serialPort.Close();


    }
  4. #4
    2010/05/05
    3
    0

    پاسخ : serial portدرvisual c#

    با سلام. من برای اولین بار سعی دارم با پورتهای سری کار کنم و تجربه ای در این زمینه ندارم. اطلاعاتی بدست آوردم اما منسجم نیستند. میخوام توسط RS-232 با یک دستگاه ارتباط برقرار کنم. با یک پرینتر شروع کردم. میخوام متنی از کاربر گرفته و به پرینتر برای چاپ بفرسته. برنامه هیچ errorی نمیده اما هیچ عکس العملی هم از پرینتر دریافت نمیکنم. اصلا نمیدونم ارتباط برقرار میشه یا خیر. چطور میتونم این ارتباط رو چک کنم؟ میتونید کمکم کنید و توضیح بدید روند کارم به چه صورت خواهد بود؟

    پیشاپیش از لطف بی کرانتان سپاس
  5. #5
    2007/08/21
    تهران
    843
    6

    پاسخ : serial portدرvisual c#

    سلام
    من قبلا بسيار زياد بين دو ميكرو كنترلر با ارتباط سريال كار كرده ام و مي دونم كه شايد در خيلي مواقع بهترين روش براي دريافت داده ها از طريق پورت سريال استفاده از وقفه دريافت است كه البته هنگامي كه ديتايي به پورت سريال مي آيد تابعي خاص بصورت خود بخود اجرا مي شود و برنامه بصورت خودكار به آنجا مي رود و در اين تابع ما مي توانيم كد نويسي كنيم و بسته به كاركردو كارايي برنامه آن بايت دريافت شده را در جايي ذخيره كنيم و در حالت نرمال برنامه كار خود را مي كند مگر آنكه ديتايي از طريق سريال دريافت كند
    البته من زياد vc# بلد نيستم ولي هركاري كردم نتونستم اين تابع وقفه را براي آن هم پيدا كنم و تنها بايستي برنامه را بصورت به اصلاح پولين اجرا كنم كه اصلا كارآمد نيست ( براي كار من )
    دوستان گر كمكم كنند ممنون مي شوم
    من كد برنامه اي را كه براي اين منظور تا كننون نوشته ام در زير قرار مي دهم من تابع وقفه را مي خواهم







    SerialPort Sp = new SerialPort();
    try
    {
    if (!Sp.IsOpen)
    {
    Sp.BaudRate = 9600;
    Sp.PortName = port.Text;
    Sp.Open();
    }
    byte[] byteq = new byte[6];
    byte rx_state = 0;
    int[] data_recive = new int[100];
    ; while (Sp.BytesToRead == 0)
    {
    // {
    // MessageBox.Show(" خطا در برقراري ارتباط "

    // }
    }

    // while(!Sp.DataReceived)
    while (Sp.BytesToRead > 0)
    {



    اين دستور while (Sp.BytesToRead == 0) خيلي اذيتم مي كنه
    واقعا به كمكتون نياز دارم
    بسيار بسيار ممنون ميشم اگر كسي به من كمك كنه
  6. #6
    2006/08/14
    378
    2

    پاسخ : serial portدرvisual c#

    تو سی شارپ به جای اینتراپت، ایونت داریم
    پورت سریال هم سه تا ایونت داره که یکیش دیتاریسیود هست
    بوسیله این کد میشه دیتای دریافتی رو تو یه باککس نشون داد:

    کد:
    this.Sp.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.SerialPort1DataReceived);
    
    
    		void SerialPort1DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) {
    			MessageBox.Show(Sp.ReadChar().ToString());
    		}
    {خلاف قوانین - امضا ویرایش شد}
  7. #7
    2008/11/27
    نيشابور
    261
    2

    پاسخ : serial portدرvisual c#

    سلام
    انجا رو ببين
    http://ehsanavr.com
  8. #8
    2007/08/21
    تهران
    843
    6

    پاسخ : serial portدرvisual c#

    با تشكر از زحمت شما
    ولي كد شما كار نمي كنه و همش error مي زنه ، البته خيلي از اين قبيل مسايل رو به حساب ناشي بودن من بذاريد وليكن ميشه يك كم بيشتر توضيح بدين كه مثلا ايونت رو كجاي برنامه بايد بنويسم و اون تابع ايونت رو بايد در كدوم فرم و كجا بنويسم
    من دقيقا اجزا اين ايونت رو نمي شناسم
    ممنون ميشم
  9. #9
    2006/08/14
    378
    2

    پاسخ : serial portدرvisual c#

    ایونت پورت هم عین ایونت بقیه آبجکتها میمونه
    مثلا همونجایی که ایونت مربوط به فشرده شدن باتن نوشته شده، دقیقا بعدش باید کد مربوط به ایونت پورت سریال نوشته بشه
    این کد بهتر میتونه کمک کنه:
    کد:
    using System;
    using System.Windows.Forms;
    
    namespace _tst {
    	public partial class MainForm : Form {
    		System.IO.Ports.SerialPort Sp = new System.IO.Ports.SerialPort();
    		public MainForm() {
    			InitializeComponent();
    			this.Sp.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.SerialPort1DataReceived);
    		}
    		
    		void Button1Click(object sender, EventArgs e) {
    			MessageBox.Show("BtnClicked");
    		}
    		
    		void SerialPort1DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) {
    			MessageBox.Show(Sp.ReadChar().ToString());
    		}
    	}
    }
    {خلاف قوانین - امضا ویرایش شد}
  10. #10
    2007/08/21
    تهران
    843
    6

    پاسخ : serial portدرvisual c#

    سيار ممنونم از شما كدي كه شما گفته بوديد كار كرد و البته همون اولش هم اشكال از من بود .
    حالا توي اون تابع ديتاها رو ميگيرم و در هر مرحله يك ايندكس به متغيير اضافه كرده و از تابع خارج مي شوم ولي مشكل اينجاست كه در هر بار كه تقاضاي دريافت ميدهم فقط سه بايت مي ايد و در مرحله بعدي جالب اينكه 3 بايت بعدي در واقع همان بايتهاي مورد نتظار براي دريافت پشت سر همان 3 بايت اول هستند با اين تفاوت كه بلافاصله بعد از اون دريافت نمي شوند و بايستي يكبار ديگر تقاظاي دريافت بفرستم تا ارسال شود .
    من اين مسله رو با كدويژإ¾ن تست كردم و د ترمينال سريال اون همان دستور را ارسال كردم و تمام بايتها به ترتيب و با يكبار تقاضا دريافت مي شود ولي اينجا مرحله مرحله است .
    بافر دريافت و ارسال ايونت رو هم زياد كردم ولي فرقي نكرد .
    نمي دونم اشكال كار كجاست ممنون مي شم بهم كمك كنيد .


    كل برنامه هم اينه كه من با فشردن يك button چند بايت بصورت زير ارسال مي كنم :

    public byte[] byteq = new byte[20];

    byteq[0] = 0xEB;
    byteq[1] = 0xA1;
    byteq[2] = 0x3A;
    Sp.Write(byteq, 0, 3);
    و آنگاه در تابع ايونت من هرگاه پاسخي بيايد ئر يك متغيير آرايه اي ذخيره كي كنم و مي دانم كه در پاسخ اين 32 بايت ، 9 بايت مي آيد و بلافاصله و پشت سرهم ولي هر بار كه من ارسال مي كنم تنها 3 بايت مي گيرم و ادامه را در 3 بايت بعدي ( خيلي به نظر من عجيب است )
    در تابع ايونت هم دارم :
    rx_state++;

    data_recive[rx_state] = Sp.ReadByte();


    لطفا راهنمايي بفرماييد با تشكر فراوان

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 20

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

  1. serial lcd
    توسط hosein0361 در انجمن میکروکنترلرهای PIC
    پاسخ: 11
    آخرين نوشته: 2014/03/01, 01:22
  2. USB TO SERIAL
    توسط alirezahedaiaty در انجمن میکروکنترلرهای AVR
    پاسخ: 13
    آخرين نوشته: 2014/02/21, 01:59
  3. serial reader
    توسط f.saeedi در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2012/07/29, 17:09
  4. مبدل usb به serial
    توسط nhaftad در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2011/05/09, 23:08
  5. serial port
    توسط iman66 در انجمن میکروکنترلرهای AVR
    پاسخ: 8
    آخرين نوشته: 2010/09/13, 02:12

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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