Thông báo

Collapse
No announcement yet.

uart Pic với C#

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • uart Pic với C#

    e chào các anh.
    Các anh giúp e phần uart pic 16f877A dùng C#. Sao e gửi dữ liệu từ PC xuống PIC thì nhận được nhưng từ PIC gửi lên PC thì ko được, mong các a chỉ giúp e

    //// Code CCS của e

    #include <16f877a.h>
    #include <def_877a.h>
    #fuses HS,NOWDT,NOPROTECT,NOLVP
    #use delay(clock=4000000)

    #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=9)

    char kitu;
    #int_RDA
    void RDA_isr(void)
    {
    kitu=getc();

    if(kitu=='a')
    output_D(0x00) ;

    if(kitu=='b')
    {

    output_D(0xFF);

    }

    void main()
    {
    output_D(0);
    SET_TRIS_D(0x00); // Port D = Xuat.

    enable_interrupts(INT_RDA);
    enable_interrupts(GLOBAL);
    while(1)
    {
    putc('e');
    }
    }


    // Code C# phần nhận dữ liệu từ PIC lên PC

    private void Nhan(object sender, SerialDataReceivedEventArgs e)
    {
    string s;

    s = myCom.ReadExisting();
    Display(s);
    }
    private delegate void DlDisplay(string s);
    private void Display(string s)
    {
    if (txtkq.InvokeRequired)
    {
    DlDisplay sd = new DlDisplay(Display);
    txtkq.Invoke(sd, new object[] { s });
    }
    else
    {
    txtkq.Text = s;

    }
    }

  • #2
    Mình không dùng CCS nên ko chạy đc code của bạn. Nhưng mình có góp ý 2 cách này:
    1. Code C# sửa thành
    private void Nhan(object sender, SerialDataReceivedEventArgs e)
    {
    string s = myCom.ReadExisting();
    Display(s);
    myCom.DiscardInBuffer();
    }
    Mình ko biết C# bạn có dùng events nhận không. Bạn xem qua hướng dẫn này


    2. Hoặc bạn có thể chỉnh code PIC theo kiểu gửi puts.
    Ví dụ bạn muốn gủi "hello" thì code của bạn sẽ gửi "hello/r".
    Code C# bạn sửa thành
    private void Nhan(object sender, SerialDataReceivedEventArgs e)
    {
    string s = myCom.ReadTo("/r");
    Display(s);
    myCom.DiscardInBuffer();
    }

    Comment


    • #3
      cám ơn Trịnh Quang

      Comment


      • #4
        mấy anh nhận nhiệt độ từ PIC gửi lên C# thì thế nào?
        em gửi lên mà C# nhận được nhưng lại hiển thị như thế này
        Click image for larger version

Name:	Untitled.jpg
Views:	1
Size:	84.5 KB
ID:	1388161
        mình có phải chuyển đổi kiểu dữ liệu gì hay không

        Comment

        Về tác giả

        Collapse

        dong94_113 Tìm hiểu thêm về dong94_113

        Bài viết mới nhất

        Collapse

        Đang tải...
        X