PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp cổng COM và LPT

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Giao tiếp cổng COM và LPT RS232, RS485 và LPT là những giao tiếp cơ bản và kinh điển khi mới học về vi điều khiển...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 14-03-2008, 01:51 PM   #1
baybalinh
Đệ tử 1 túi
 
Tham gia ngày: Dec 2007
Bài gửi: 18
:
Tài liệu giao tiếp RS232 bằng C#

Có bác nào có tài liệu giao tiếp RS232 dùng C# không? Em nghe nói C# dùng mạnh lắm mà chưa tìm được tài liệu hix hix.
Bác nào có share em với. Thanks các bác nhiều nhiều ><
baybalinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-03-2008, 09:44 PM   #2
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Trích:
Nguyên văn bởi baybalinh View Post
Có bác nào có tài liệu giao tiếp RS232 dùng C# không? Em nghe nói C# dùng mạnh lắm mà chưa tìm được tài liệu hix hix.
Bác nào có share em với. Thanks các bác nhiều nhiều ><
Bạn dùng control SerialPort trong VisualStudio 2005 hoặc VisualStudio 2008 (nhóm components trong toolbox). Code mẫu và tài liệu bạn tham khảo từ MSDN nhé.
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-03-2008, 10:47 PM   #3
thaithienanh
Đệ tử 7 túi
 
thaithienanh's Avatar
 
Tham gia ngày: Jul 2006
Bài gửi: 189
:
Send a message via Yahoo to thaithienanh
Trong này đã có tut dùng .NET rồi, bạn lấy tut đó về xem cũng tương tự thôi .
__________________
_____________________________Tri nhân tri tự bất tri tâm_____________________________
_ _ _ _ _ _ _ _ Yêu mến tất cả anh em Picvietnam.com _ _ _ _ _ _ _ _
. . . . . . . . . . . . . . . . Để post đuợc một câu hỏi rõ ràng xin tham khảo link sau : . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . http://www.picvietnam.com/forum/showthread.php?t=1263. . . . . . . . . . . . . . . .
thaithienanh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-03-2008, 11:55 PM   #4
baybalinh
Đệ tử 1 túi
 
Tham gia ngày: Dec 2007
Bài gửi: 18
:
Các bác có thể nói cụ thể hơn k ạ?? Code mẫu và tuto em vào phần nào để xem ạ?? Còn tập lệnh dùng cho giao tiếp máy tính tra trong thư viện nào? Em còn gá lằm các bác ơi :-s
baybalinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-03-2008, 01:20 AM   #5
thaithienanh
Đệ tử 7 túi
 
thaithienanh's Avatar
 
Tham gia ngày: Jul 2006
Bài gửi: 189
:
Send a message via Yahoo to thaithienanh
Trích:
Nguyên văn bởi baybalinh View Post
Các bác có thể nói cụ thể hơn k ạ?? Code mẫu và tuto em vào phần nào để xem ạ?? Còn tập lệnh dùng cho giao tiếp máy tính tra trong thư viện nào? Em còn gá lằm các bác ơi :-s
http://www.picvietnam.com/forum/showthread.php?t=542
http://dientuvietnam.net/forums/showthread.php?t=3065
http://dientuvietnam.net/forums/showthread.php?t=3046

Chúc vui .
__________________
_____________________________Tri nhân tri tự bất tri tâm_____________________________
_ _ _ _ _ _ _ _ Yêu mến tất cả anh em Picvietnam.com _ _ _ _ _ _ _ _
. . . . . . . . . . . . . . . . Để post đuợc một câu hỏi rõ ràng xin tham khảo link sau : . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . http://www.picvietnam.com/forum/showthread.php?t=1263. . . . . . . . . . . . . . . .
thaithienanh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-03-2008, 11:34 PM   #6
baybalinh
Đệ tử 1 túi
 
Tham gia ngày: Dec 2007
Bài gửi: 18
:
hehe thanks mấy bác nhìu ^^, ít nhất bây giờ em cũng biết được bắt đầu từ đâu .
baybalinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-03-2008, 11:18 AM   #7
nguyencuongevn
Nhập môn đệ tử
 
Tham gia ngày: Mar 2008
Bài gửi: 2
:
cho em hỏi R232 và R422,R485 có khác nhau nhiều không?
nguyencuongevn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-03-2008, 11:19 AM   #8
nguyencuongevn
Nhập môn đệ tử
 
Tham gia ngày: Mar 2008
Bài gửi: 2
:
ai có tài liệu về các thiết bị tự động hoá ko?post cho mình với?thanhks
nguyencuongevn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-04-2008, 10:21 AM   #9
baybalinh
Đệ tử 1 túi
 
Tham gia ngày: Dec 2007
Bài gửi: 18
:
Các bác xem code của em bị lỗi gì với

Em có làm 1 ví dụ từ nguồn http://www.codeproject.com/KB/system...hreadSafe.aspx giao tiếp RS232 dùng C#.
Nó báo lỗi thế này:
Error 1 The name 'port' does not exist in the current context C:\Documents and Settings\KkK\My Documents\Visual Studio 2005\Projects\vd codeproject Csharp\vd codeproject Csharp\Form1.cs

Em gửi kèm project em làm. Các bác xem hộ em sai ở đâu với ạ.
Em cảm ơn các bác nhiều.

Đây là code của em
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;


namespace RS232
{
    public partial class fclsRS232Tester : Form
    {
        string InputData = String.Empty;
        // This delegate enables asynchronous calls for setting

        // the text property on a TextBox control:

        delegate void SetTextCallback(string text);
        public fclsRS232Tester()
        {
            InitializeComponent();
            // Nice methods to browse all available ports:

            string[] ports = SerialPort.GetPortNames();

            // Add all port names to the combo box:

            foreach (string port in ports)
            {
                cmbComSelect.Items.Add(port);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (port.IsOpen) port.WriteLine(txtOut.Text);
            else MessageBox.Show("Serial port is closed!",
                                 "RS232 tester",
                                 MessageBoxButtons.OK,
                                 MessageBoxIcon.Error);
            txtOut.Clear();
        }

        private void cmbComSelect_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (port.IsOpen) port.Close();
            port.PortName = cmbComSelect.SelectedItem.ToString();
            stsStatus.Text = port.PortName + ": 9600,8N1";

            // try to open the selected port:

            try
            {
                port.Open();
            }
            // give a message, if the port is not available:

            catch
            {
                MessageBox.Show("Serial port " + port.PortName +
                   " cannot be opened!", "RS232 tester",
                   MessageBoxButtons.OK, MessageBoxIcon.Warning);
                cmbComSelect.SelectedText = "";
                stsStatus.Text = "Select serial port!";
            }
        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            txtIn.Clear();
        }

        private void txtIn_TextChanged(object sender, EventArgs e)
        {

        }

        private void stsStatus_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }
        private void port_DataReceived_1(object sender, SerialDataReceivedEventArgs e)
        {
            InputData = port.ReadExisting();
            if (InputData != String.Empty)
            {
                //             txtIn.Text = InputData;

                // because of different threads this

                // does not work properly !!


                SetText(InputData);
            }
        }
        private void SetText(string text)
        {
            // InvokeRequired required compares the thread ID of the

            // calling thread to the thread ID of the creating thread.

            // If these threads are different, it returns true.

            if (this.txtIn.InvokeRequired)
            {
                SetTextCallback d = new SetTextCallback(SetText);
                this.Invoke(d, new object[] { text });
            }
            else this.txtIn.Text += text;
        }
    }
}
File Kèm Theo
File Type: rar vd codeproject Csharp.rar (19.0 KB, 222 lần tải)

thay đổi nội dung bởi: namqn, 24-04-2008 lúc 10:26 PM.
baybalinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-04-2008, 10:25 AM   #10
baybalinh
Đệ tử 1 túi
 
Tham gia ngày: Dec 2007
Bài gửi: 18
:
Hix em copy qua forum sao mấy ô spacing nó tụt ra đầu dòng hết vậy, các bác chịu khó xem trong project em gửi vậy nhé. Các bác thông cảm em còn gà lắm
baybalinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-04-2008, 10:22 PM   #11
baybalinh
Đệ tử 1 túi
 
Tham gia ngày: Dec 2007
Bài gửi: 18
:
hix k có ai giúp em à :-s
baybalinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-04-2008, 10:30 PM   #12
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
port của bạn là object loại nào? Bạn chỉ có ports có kiểu string[] trong code thôi.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-04-2008, 11:19 AM   #13
baybalinh
Đệ tử 1 túi
 
Tham gia ngày: Dec 2007
Bài gửi: 18
:
ports kiểu string em dùng làm biến đầu vào cho hàm foreach ( Em cũng k biết rõ tác dụng của hàm này lắm, em mới tập làm lại ví dụ trong trang em nói ở trên thôi mà )
Lỗi không phải ở name ports kiểu string mà ở các hàm port.open, port.close v.v.. . name ports có "s" mà, trong khi "port" báo lỗi đâu có chữ "s" đâu .
Em đã thử gỡ bộ visual studio cài lại vẫn báo lỗi như vậy. Bác nào thử chạy project em attach ở trên xem sao. Plzz help me. Hix đau đầu với nó quá
baybalinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-04-2008, 08:11 PM   #14
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi baybalinh View Post
ports kiểu string em dùng làm biến đầu vào cho hàm foreach ( Em cũng k biết rõ tác dụng của hàm này lắm, em mới tập làm lại ví dụ trong trang em nói ở trên thôi mà )
Lỗi không phải ở name ports kiểu string mà ở các hàm port.open, port.close v.v.. . name ports có "s" mà, trong khi "port" báo lỗi đâu có chữ "s" đâu .
Em đã thử gỡ bộ visual studio cài lại vẫn báo lỗi như vậy. Bác nào thử chạy project em attach ở trên xem sao. Plzz help me. Hix đau đầu với nó quá
Bạn không hiểu ý câu hỏi của tôi. Tôi hỏi port của bạn là object loại nào vì tôi không thấy nó được khai báo, hay khởi tạo. Thông báo lỗi của trình biên dịch như sau:
"Tên 'port' không tồn tại trong ngữ cảnh hiện hành", tức là bạn định dùng một object tên là 'port', mà trình biên dịch không biết nó là loại object gì, khai báo ở đâu, khởi tạo ở đâu.

Cú pháp của foreach được viết đúng, nghĩa là với mỗi phần tử của mảng ports[] (có được từ việc gọi hàm SerialPort.GetPortNames()) thì gán nó cho biến port, và dùng biến này để thêm phần tử vào combo box cmbComSelect. Theo tôi, vấn đề nằm ở chỗ port được khai báo trong hàm fclsRS232Tester(), và được dùng trong một số hàm khác. Đây chỉ là phỏng đoán của tôi, vì tôi không dùng C# (tôi từng viết code Java cách đây khoảng 10 năm, bây giờ chỉ còn nhớ một vài khái niệm trong OOP thôi).

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-04-2008, 12:47 AM   #15
baybalinh
Đệ tử 1 túi
 
Tham gia ngày: Dec 2007
Bài gửi: 18
:
Bác làm ơn giải thích rõ hơn cho em được không ạ. Tại cái này là vd đầu tiên em mò tới C# cũng như vộ visual std 2005.
Em thấy biến port chỉ có trong hàm foreach thôi đúng không bác. Em đâu thấy biến port trong hàm nào khác nữa đâu.
Với lại khi báo lỗi, em thấy nó có gạch chân mấy hàm port.Open, port.Close v.v.... nên e nghĩ k biết có fải lõi ở mấy hàm này k
baybalinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 08:50 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam