Thông báo

Collapse
No announcement yet.

lỗi khi truyền dữ liệu trong chuẩn RS232 ?

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

  • lỗi khi truyền dữ liệu trong chuẩn RS232 ?

    em giao tiếp giữa PIC18 và PC qua max232 mà tại sao cho con PIC truyền lên PC mỗi một kí tự mà trên Virtual Terminal toàn hiện <0><0><0><0><0><0> ý la kí tự rỗng trong khi em truyền kí tự "T" ???
    //putc("T");// em thử luôn trên 2 môdun UART của con PIC thì đều cho cùng kết quả tương tự ??? mạch max232 thì em test với PIC16 thì OK!

  • #2
    Hình như dùng max232 nhận xuống thì dc chứ truyền len máy tính hay bị lỗi lắm bạn, bạn dùng pl2303 hoặc các day usb to com thay cho kon max232 thử

    Comment


    • #3
      Nguyên văn bởi trimen Xem bài viết
      Hình như dùng max232 nhận xuống thì dc chứ truyền len máy tính hay bị lỗi lắm bạn, bạn dùng pl2303 hoặc các day usb to com thay cho kon max232 thử
      Bậy nào. Làm gì có chuyện đó. Lỗi đó không phải do Max232 đâu, xem lại mạch, nguồn, các tụ như thế nào đi chứ. Vấn đề truyền nhận dữ liệu khi xảy ra lỗi các bạn xem lại tần số thạch anh đang sử dụng cho MCU là bao nhiêu, tốc độ baudrate bao nhiêu. CHịu khó tra trong datasheet của PIC để thiết lập sao cho % sai số ở mức thấp. Chẳng hạn:
      Với thạch anh 20MHz (4MIPS), bit BRGH=0; BRG16=0; Muốn baudrate 9600 nhưng baurate thực tế là 9766 Kbps gây ra sai số sẽ là 1.73%. Tương tự ứng với baurate mong muốn là 19.2Kbps thì baurate gần nhất để đạt được thực tế là 19.531 Kbps, sai số tính được là 1.73%. Nếu bạn giảm xuống 2.4Kbps, sai số chỉ còn 0.16% và dữ liệu ít khi truyền nhận bị lỗi. Bạn xem thêm trong datasheet để thiết lập tốt nhất cho ứng dụng nhé.

      Comment


      • #4
        Mình cũng bị y như vậy,PIC16 thì không sao,còn PIC18 là loạn hết cả lên


        email:
        Giá mà mạch điện tử không có nhiễu (noise) thì mình bây giờ đã là ... đại gia

        Comment


        • #5
          Sử dụng crystal để tránh sai số thì có các loại thạch anh cho sai số thấp ( tự tra nha - thạch anh ko phải là 20 hay 4 hay 12
          nó là 1 giá trị lẻ lẻ ^^
          Be quan. Plz contact through email:

          Comment


          • #6
            bạn thử thay hàm putc("T") bằng hàm putc('T') thử xem

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...
            X