PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp USB, CAN, I2C, SPI, USART...

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 USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 04-05-2012, 04:59 PM   #1
van.le
Nhập môn đệ tử
 
Tham gia ngày: Nov 2011
Bài gửi: 5
:
giao tiếp rs232 với pic16f877A với máy tính

Các bạn cho mình hỏi về việc pic nhận một mảng byte do máy tính truyền qua phần giao tiếp C#.
mục đích của mình là muốn truyền một mảng byte để điều khiển led ma trận.
nhưng, tình hình là mình chỉ truyền được 3byte dữ liệu đầu xong rồi dừng luôn, pic không thể nhận thêm byte dữ liệu nữa.

mình dùng ccs để code:
Code:
void main()
{
    
   byte temp;

   // TODO: USER CODE!!
   TRISB = 0x00;
   TRISD = 0X00;
   while (1)
   {
    PORTB=0x00;
      if(kbhit())
      {
         temp=getc(); 
         PORTD=temp;
         delay_ms(100);
      }
      
     
   }

}
trong C# là:
Code:
void SendPixelToCom()
        {
            //byte[] t = { 0x00, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x00 };           
            byte[] t = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x0f };
            serialPort1.Write(t,0,8);
                
            
        }

mình có gửi kèm theo code
Giờ mình không biết cách nào để truyền nguyên mảng trong c# cho pic nó nhận và truyền ra led. các bạn giúp mình với.
cảm ơn các bạn
File Kèm Theo
File Type: rar RS232 Commnunication With Csharp.rar (58.3 KB, 209 lần tải)
File Type: rar MatrixLED.rar (31.9 KB, 100 lần tải)
van.le vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-05-2012, 01:41 AM   #2
tuanpham0101
Nhập môn đệ tử
 
Tham gia ngày: Feb 2012
Bài gửi: 4
:
thực sự mình cũng chỉ mới học về pic, và cũng chẳng biết dùng C#, lập trình Pic mình dùng HT-PIC chứ k dùng CCS.
theo mình nghĩ thì vấn đề của bạn là do khi ban truyền 1 byte tới VDK, nó sẽ nhảy vào ngắt USART, bạn phải nhanh chóng xử lý byte dữ liệu vừa nhận đc để nó có thể nhận byte tiếp theo. Nếu bạn chưa kịp xử lý dữ liệu mà byte tiếp theo đã dc truyền đến thì có thể nó sẽ ghi đè lên byte dữ liệu đang có trong buff, dẫn đến truyền nhận sai.
đây chỉ là suy nghĩ của mình, vì mình chưa thừ truyền nhiều byte bằng usart.
thân.
tuanpham0101 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-05-2012, 10:18 AM   #3
van.le
Nhập môn đệ tử
 
Tham gia ngày: Nov 2011
Bài gửi: 5
:
cái này mình dùng giao tiếp rs232.(hình như mình post nhầm box)
cứ mỗi lần nhận byte thì mình lại gán vào port D trên pic để điều khiển led ma trận.

thực tế, làm cái này để test thử port hiển thị đúng không. chứ cuối cùng của mình là hiển thị hình ảnh load từ máy tính. sử dụng các con 595 để dịch.

nhưng hiện giờ thì pic chỉ nhận được 3byte rồi đứng. không bit có lỗi j ở code hay không :-?
các bạn giúp mình với nha.
van.le vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-05-2012, 08:41 AM   #4
van.le
Nhập môn đệ tử
 
Tham gia ngày: Nov 2011
Bài gửi: 5
:
up...... hic
van.le 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à 12:42 PM.


Đượ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