Thông báo

Collapse
No announcement yet.

Xin hỏi về vấn đề nhận một chuổi từ máy tính

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

  • Xin hỏi về vấn đề nhận một chuổi từ máy tính

    mình đang làm phần giao tiếp với máy tính qua RS232, nếu máy tính truyền một ký tự thì mình giải quyết được, còn nếu máy tính truyền một chuổi kết thúc bằng ký tự ENTER thì mình vẫn chưa làm được, đang bí quá. yêu cầu là chuổi sau khi được gửi xuống thì lưu vào biến temp, xin các cao thủ chỉ giúp.
    hãy cố gắng dù vướn phải thất bại!!!!!!!!

  • #2
    Biến temp của bạn phải là một mảng kí tự( theo kiểu C/C++)vậy biến tem này cũng có độ dài n và kí hiệu là temp[n]. Bạn có thể làm thuật toán như sau:
    Giả sử chuỗi kí tự cần gửu là String[n] có độ dài là n kí tự ASCII, các bước gửu lần lượt như sau:
    Bước 1: Gửu lệnh thông báo bắt đầu gửu chuỗi từ PC tới MCU
    Bước 2: Gửu lệnh sẵn sàng nhận chuỗi từ MCU tới PC
    Bước 3: Gửu kí tự đầu tiên trong chuỗi String[n] là String[0] từ PC tới MCU
    Bước 4: MCU nhận đc kí tự đầu tiên thì lưu temp[0]=(kí tự nhận dc) rồi gửu thông báo yêu cầu gửu kí tự thứ 2( từ MCU tới PC)
    Bước 5: Sau khi đọc yêu cầu gửu kí tự thứ 2 của MCU thì chuyển sang gửu kí tự tứ 2 (từ PC tới MCU)
    Bước 6: MCU nhận đc kí tự thứ 2 thì lưu temp[1]=(kí tự nhận đc) gửu thông báo yêu cầu gửu kí tự thứ 3(Từ MCU tới PC)
    Bước 7: Khi đọc đc yêu cầu gửu kí tự thứ 3 của MCU thì bắt đầu gửu kí tự thứ 4 (PC tới MCU)
    .......................
    Quá tình cứ tiếp tụ như vậy tới khi gửu đủ n kí tự trong chuỗi String[n] và PC báo kết thúc quá trình truyền dư liệu tới MCU
    bạn phải kí hiệu các mã xác nhận gửu, yêu cầu gửu, kết thúc các quá trình gửu là các mã không phải là mã kí tự trong bảng mã ASCII để tránh cho việc hiểu lầm của PC và MCU với các kí tự cần gửu trong chuỗi String[n]

    Comment


    • #3
      ok đồng ý với bạn
      đây là cách gửi từng ký tự
      nói chung thì cần thỏa thuận giữa MCU và PC

      Comment


      • #4
        Nguyên văn bởi kidteam Xem bài viết
        ok đồng ý với bạn
        đây là cách gửi từng ký tự
        nói chung thì cần thỏa thuận giữa MCU và PC
        Chú ý là chỉ khi MCU có yêu cầu gửu kí tự thì mới tiếp tục gửu, còn chưa có yêu cầu gửu thì không đc gửu tránh bị đè mất dữ liệu khi gửu đó.

        Comment


        • #5
          minh cung biet vay, nhung tren C thi khai bao nhu the nao. minh dung ngat Rx nen hoi lung tung.

          void nhan (void temp[])
          khai bao ham ngat nhan du lieu nhu the ma no cu bao loi o bien temp do hoai. y minh muon chi can goi ham nhan(str) thi chuoi nhan duoc se luu vao chuoi str. xin cac bac co the viet luon chi tiet tung cau lenh dum luon de em co the giai quyet duoc van de nay. cam on nhieu.

          sorry! do minh truy cap tren dien thoai nen go ko co dau.
          hãy cố gắng dù vướn phải thất bại!!!!!!!!

          Comment


          • #6
            Nguyên văn bởi chipmickey Xem bài viết
            minh cung biet vay, nhung tren C thi khai bao nhu the nao. minh dung ngat Rx nen hoi lung tung.

            void nhan (void temp[])
            khai bao ham ngat nhan du lieu nhu the ma no cu bao loi o bien temp do hoai. y minh muon chi can goi ham nhan(str) thi chuoi nhan duoc se luu vao chuoi str. xin cac bac co the viet luon chi tiet tung cau lenh dum luon de em co the giai quyet duoc van de nay. cam on nhieu.

            sorry! do minh truy cap tren dien thoai nen go ko co dau.
            Bạn khai báo sai rồi.
            void nhan (char temp[])

            Comment


            • #7
              ai có code không. úp lên cho em tham khảo với . truyền từ bàn phím máy tính một chuỗi đó

              Comment


              • #8
                Bạn có thế cho 1 đoạn code mẫu ko.

                Nguyên văn bởi congbinh1989 Xem bài viết
                Biến temp của bạn phải là một mảng kí tự( theo kiểu C/C++)vậy biến tem này cũng có độ dài n và kí hiệu là temp[n]. Bạn có thể làm thuật toán như sau:
                Giả sử chuỗi kí tự cần gửu là String[n] có độ dài là n kí tự ASCII, các bước gửu lần lượt như sau:
                Bước 1: Gửu lệnh thông báo bắt đầu gửu chuỗi từ PC tới MCU
                Bước 2: Gửu lệnh sẵn sàng nhận chuỗi từ MCU tới PC
                Bước 3: Gửu kí tự đầu tiên trong chuỗi String[n] là String[0] từ PC tới MCU
                Bước 4: MCU nhận đc kí tự đầu tiên thì lưu temp[0]=(kí tự nhận dc) rồi gửu thông báo yêu cầu gửu kí tự thứ 2( từ MCU tới PC)
                Bước 5: Sau khi đọc yêu cầu gửu kí tự thứ 2 của MCU thì chuyển sang gửu kí tự tứ 2 (từ PC tới MCU)
                Bước 6: MCU nhận đc kí tự thứ 2 thì lưu temp[1]=(kí tự nhận đc) gửu thông báo yêu cầu gửu kí tự thứ 3(Từ MCU tới PC)
                Bước 7: Khi đọc đc yêu cầu gửu kí tự thứ 3 của MCU thì bắt đầu gửu kí tự thứ 4 (PC tới MCU)
                .......................
                Quá tình cứ tiếp tụ như vậy tới khi gửu đủ n kí tự trong chuỗi String[n] và PC báo kết thúc quá trình truyền dư liệu tới MCU
                bạn phải kí hiệu các mã xác nhận gửu, yêu cầu gửu, kết thúc các quá trình gửu là các mã không phải là mã kí tự trong bảng mã ASCII để tránh cho việc hiểu lầm của PC và MCU với các kí tự cần gửu trong chuỗi String[n]
                Mong bạn hãy giúp cho đoạn code mẫu.

                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                Đang tải...
                X