![]() |
|
Tài trợ cho PIC Vietnam |
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... |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Aug 2007
Bài gửi: 2
: |
em cam on cac tai lieu cua cac anh, em dang lam luan van ve truyen du lieu khong day theo chuan "CDMA" nhung khong co tai lieu va huong giai quyet nhu the nao co ai biet thi giup do em, em thanh that cam on.
Neu biet goi mail cho em nha. cuong.1032869@student.ctu.edu.vn |
![]() |
![]() |
![]() |
#2 |
Nhập môn đệ tử
Tham gia ngày: Aug 2007
Bài gửi: 2
: |
cân điện tử
Chào các bạn!
Tôi có chương trình cân lấy dữ liệu từ đồng hồ cân qua công com máy tính, chương trình viêt bằng fox 2.6 win chạy trên Win 98, nay tôi cài upgrade win XP thì chương trình không còn đọc được dữ liệu qua cổng com nữa. Như vây mình có thể khắc phục được không, xin các bạn giúp dùm nhé! |
![]() |
![]() |
![]() |
#3 | |
Đệ tử 2 túi
Tham gia ngày: Feb 2006
Bài gửi: 27
: |
Trích:
|
|
![]() |
![]() |
![]() |
#4 |
Nhập môn đệ tử
Tham gia ngày: Nov 2007
Bài gửi: 3
: |
Mỉnh cũng tạo giao diện Cổng Com nhưng dùng visual 2005.net.Mình truyền đc data (dạng text) rùi nhưng nếu dùng lisbox để nhận & hiện thị data thì chỉ hiện đc 1/2 thôi.
nếu mình muốn truuyền 1 file thì có đc ko ? Xin các bác chỉ giáo nha......thanks ! |
![]() |
![]() |
![]() |
#5 |
Nhập môn đệ tử
|
![]() Chao cac bao , no chang khac chi Terminal cua Win ca. Upload code len cho anh e, dung co le tot hon
|
![]() |
![]() |
![]() |
#6 |
Đệ tử 2 túi
Tham gia ngày: Feb 2006
Bài gửi: 27
: |
Chương trình của Bắc có xài overlapped I/O không? Có sử dụng multithread để xử lý riêng biệt không? Mình cũng hay viết chương trình giao tiếp bằng VC nay muốn chuyển qua .NET nên quan rất quan tâm vấn đề này. Còn chuyện tự động detect COM (physical or virtual) plug/unplug thì cũng đơn giản thui hè. Tốt nhất nên share source code để anh em cùng đóng góp kinh nghiệm.
|
![]() |
![]() |
![]() |
#7 |
Nhập môn đệ tử
Tham gia ngày: May 2008
Bài gửi: 3
: |
Cậu có thể cho mình xin tài liệu về vấn đề này mà viết bang VC++ ko Bắc, nếu có thì mình cảm ơn. Email của minh: hanhkhucbachkhoa@gmail.com
|
![]() |
![]() |
![]() |
#8 |
Đệ tử 1 túi
Tham gia ngày: Oct 2007
Bài gửi: 16
: |
bó tay
lúc thì VC++ 6, lúc thì VC++.net, lúc thì basic... em chả hiểu là nên dùng caí nào cái nào có thể truyền và nhận dữ liệu qua PIC 16f877a và điều khiển thông qua PIC em thấy các anh nói triền miêm , mà cái nào cũng dở dang bọn em đã gà thì chớ chả hiểu gì hết |
![]() |
![]() |
![]() |
#9 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 1
: |
Cậu có thể hướng dẫn mình cách làm chương trình thường trú trong windows với Visual Basic 6.0 không? vì mình muốm viết một chương trình thường trú đọc dữ liệu từ RS232. Chi tiết đoạn code càng tốt. Cảm ơn nhiều
thay đổi nội dung bởi: Billinstructor, 24-12-2008 lúc 11:16 AM. Lý do: thiếu ý tưởng |
![]() |
![]() |
![]() |
#10 |
Nhập môn đệ tử
Tham gia ngày: Mar 2009
Bài gửi: 5
: |
anh ơi có phần mạch test ko? e dang làm phần giao tiếp rs232 dùng VC++ a có thể gửi cho e phần mạch test mach nguyên lý với hướng dẫn k? mail của e là thienduongxanh836@yahoo.com thank
|
![]() |
![]() |
![]() |
#11 |
Đệ tử 2 túi
Tham gia ngày: Oct 2007
Bài gửi: 42
: |
Em đang làm giao tiếp RS232 sử dụng C#. Nhưng chương trình không xử lý lệnh serialport1.close(). Mong mọi người chỉ giáo.
Đây là code C#. Code:
using System; using System.Collections.Generic; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace viduRS232 { public partial class Form1 : Form { public string s; public ArrayList arr = new ArrayList(); public int id; public Form1() { InitializeComponent(); id = 0; } private void Form1_Load(object sender, EventArgs e) { serialPort1.Close(); } private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { this.Invoke(new EventHandler(display)); } private void display(object sender, EventArgs e) { int flag; int c; c = serialPort1.ReadChar(); //string s1 = ""; s = ""; flag = 0; if (c == 's') { flag = 1; while (flag == 1) { c =serialPort1.ReadChar(); if (c == 'S') { //textBoxdisplay.Text = s1; flag = 0; } else s += Convert.ToChar(c); } arr.Add(s); id++; if (id == 2) { serialPort1.Write("S"); } //serialPort1.Write("s"); //this.textBoxdisplay.Text = s; } } private void buttonRead_Click(object sender, EventArgs e) { try { serialPort1.Open(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } serialPort1.DataReceived +=new System.IO.Ports.SerialDataReceivedEventHandler(serialPort1_DataReceived); serialPort1.Write("s"); //id = 1; //while (id == 1) ; } private void buttonClose_Click(object sender, EventArgs e) { //this.Dispose(); //this.serialPort1.Close(); this.Close(); } private void buttondisplay_Click(object sender, EventArgs e) { this.textBoxdisplay.Text = Convert.ToString(arr[0]); this.textBox1.Text = Convert.ToString(arr[1]); this.textBox2.Text = Convert.ToString(id); //serialPort1.Write("s"); this.serialPort1.Close(); } } } Code:
#include <18f4331.h> #device *=16 ADC=8 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP #use delay(clock=20000000) #use rs232(baud = 9600,parity = n,xmit = pin_C6,rcv=pin_C7) #include <LMB162A.c> int flag; void lcd_putstr(char *buffer); #int_rda void ngat_rs232() { if(flag==0) { printf("sxyzS"); } if(flag==1) { printf("sabcS"); } if(flag==2) { printf("s123S"); } if(flag==3) { printf("s456S"); } putc('\0'); flag++; } void main() { int id; char c; char s[] = "hello"; //char s1[] ="s123456789S"; //char s2[] = "s987654321"; enable_interrupts(global); enable_interrupts(int_rda); delay_ms(50); lcd_init(); delay_ms(10); printf(lcd_putc,"hello"); flag = 0; //while(flag==0) //{ // printf("s123456S"); //} //lcd_putc('\f'); id = 1; while(id==1) { c = getc(); if(c=='S') { id = 0; //sable_interrupts(int_rda); } } //able_interrupts(int_timer1); printf(lcd_putc,"xong"); } void lcd_putstr(char *buffer) { unsigned int i = 0; while (buffer[i] != '\0') { lcd_putc(buffer[i]); /* calling another function */ /* to write each char to the lcd module */ i++; delay_us(10); } } |
![]() |
![]() |
![]() |
#12 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
![]() |
![]() |
![]() |
#13 |
Đệ tử 2 túi
Tham gia ngày: Oct 2007
Bài gửi: 42
: |
cám ơn trưởng lão nhiều. Còn vấn đề lệnh Serialport1.close() không được thực hiện khi đặt lệnh đó trong hàm ngắt sự kiện data_receive, trưởng lão và các cao thủ có thể chỉ em nguyên nhân không ạ?
|
![]() |
![]() |
![]() |
#14 |
Nhập môn đệ tử
Tham gia ngày: May 2009
Bài gửi: 1
: |
các bác có file.dll nào mà khi add vào thanh toolbox thì visual C++.net có thể giao tiếp ra bên ngoài qua cổng USB. có thì share cho mình nghen ,cám ơn rất nhiều .
|
![]() |
![]() |
![]() |
#15 |
Đệ tử 4 túi
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Hanoi, Vietnam
Bài gửi: 78
: |
Chương trình của Bắc rất hay! Tuy nhiên cũng còn nhiều trường hợp cần bắt lỗi!
Đúng là ta nên thử nghiệm viết các ứng dụng trên các công cụ mới hơn. Mình thấy hỗ trợ lớp Serial Port Communication của bộ Visual Studio 2005 là rất mạnh! Hi vọng là sẽ được học hỏi nhiều ở các bạn và các A đi trước! To tinhgiac_vp: Ở đây mình thấy mấy chỗ bạn sử dụng lệnh serialPort1.close() Không biết là chương trình mắc lỗi ở chỗ nào - Mình cũng ko hiểu tại sao bạn lại close luôn kết nối khi load form vậy? private void Form1_Load(object sender, EventArgs e) { serialPort1.Close(); } Bạn nên gửi kèm file chương trình để mọi người cùng test thì tốt hơn! Và một điều lưu ý khi lập trình đó là các câu lệnh được dịch theo thứ tự từ trên xuống dưới. Do vậy, có khi cả đoạn code là đúng nhưng chỉ là cái cần làm trước lại đặt ở sau thì chương trình cũng không cho kết quả chính xác! Hihi! Thân chào. Delfy
__________________
Mechatronics Department University of Engineering and Technology, VNUH. |
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|