Thông báo

Collapse
No announcement yet.

Truyền tiếng việt có dấu qua rs232 xuống avr

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

  • Truyền tiếng việt có dấu qua rs232 xuống avr

    Chào các pác,mong được giúp đỡ:
    Mình muốn truyền một chuỗi kí tự tiếng việt có dấu(phông unicode) xuống AVR,cấu hình cho bên nhận và truyền đều là 8 bit dữ liệu nhưng unicode thì mỗi kí tự là 16 bít,điều này làm mình băn khoăn quá.Bác nào đã từng làm dc rồi thì giúp mình với.Mình đã truyền chuỗi ascii và đã thành công,nhưng khi truyền chuỗi tiếng việt thì không dc.

  • #2
    Bạn nói rõ dùng chương trình gì và truyền cách nào thì mọi người mới có thể hiểu và giúp bạn được. VD: dùng VB, HyperTerminal, VC, ...

    Comment


    • #3
      Bạn cũng có thể dùng cách chuyển toàn bộ text unicode sang dạng chuỗi ASCII để truyền. ví dụ chữ "Ơ" có mã unicode là: 0x01A0 thì bạn sẽ chuyển thành chuỗi "01A0" để truyển, khi đó dữ liệu sẽ truyền đi thực tế là: 0x30 0x31 0x41 0x30. Chúc bạn thành công.

      Comment


      • #4
        Mình đả viết một chương trình nhỏ = .net code của nó đơn giản như sau:
        /************************************************** **/
        Public Class Form1

        Public baud, parity, stopbit, bitlength As String//khai báo các biến
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load //khi khi chạy thì thiết lập như sau
        com1.Open()
        Txtchedo.Text = "Toc do baud:" & baud & vbCrLf & "Patity:" & parity & vbCrLf & "Stopbit:" & stopbit & vbCrLf & "Databit:" & bitlength
        com1.BaudRate = 9600 //tốc độ baud
        com1.Parity = IO.Ports.Parity.None //không cờ chắn lẽ
        com1.StopBits = IO.Ports.StopBits.One //1 bit stop
        com1.DataBits = 8 // 8 bit dữ liệu
        Cmdclear.Enabled = False
        End Sub
        // cho nay mình làm một text box để viết dữ liệu để truyền đi
        //khi nhân click vào nút truyền thì truyền xuống com1
        Private Sub Cmdtruyen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmdtruyen.Click
        com1.Write(TextBox1.Text)
        Cmdclear.Enabled = True
        End Sub


        ////////////////////////////////////
        Phía AVR cũng cấu hình truyền nhân như trên
        Mình muốn hỏi là lúc minh truyền chư "ắ" thì máy tính sẽ xử lí thế nào và vi điều khiển sẽ nhận dc gì
        mình dùng font unicode

        Comment


        • #5
          Nếu bạn truyền chữ "ắ" thì bên phía AVR sẽ nhận 2 byte: "1Eh" và "AFh" ứng với mã unicode của chữ "ắ". Bạn kiểm tra lại xem sau

          Comment


          • #6
            to bác digicom:mình kiểm tra lại rồi,dùng chương trình test trang thái cổng com"Free serial port monitor" nhưng khi truyền chữ á thì thấy cổng com chỉ có 1 byte có lẽ là do cái chương trình .net của mình.Mình thử các phần mềm khác nhưng không có phần mềm nào đánh dc unicode bác có phần mềm nào đánh được chữ unicode ko cho mình xin cái.

            Comment


            • #7
              Hôm nay thử chuyển sang dùng bảng mã TCVN3 "bãng mã này mã hóa kí tự tiếng việt chỉ dùng 1 byte" kết quả thật mĩ mãn,nhưng ngặt nỗi cái bảng mã này thiếu mấy kí tự như :Ố,Ừ,Ắ,....muốn chuyển sang dùng unicode nhưng chưa dc.

              Comment


              • #8
                Để mình thử một số giải pháp dùng Unicode rồi Post lên cho bạn.

                Comment


                • #9
                  Thanks bác digicom đả quan tâm,rất mong được sự giúp đỡ của bác vào một ngày sớm nhất!

                  Comment


                  • #10
                    btbk, mấy hôm nay bạn quá không vào mạng nên không trả lời bạn kịp. Mình đã thử truyền ký tự UNICODE qua AVR rồi. Vì mình không biết VB nên mình dùng chương trình HyperTerminal để truyền file .txt có ký tự UNICODE trong đó. Kết quả AVR nhận được 2bytes/1ký tự UNICODE như mong muốn. Mình Post kèm chương trình mẫu và một số file khác để bạn tham khảo. Trong đó:
                    1. Unicode1.JPG: hướng dẫn lưu file txt có chứa Unicode
                    2. Unicode2.JPG: Thực hiện chương trình sẽ thấy dòng chữ: "Test UNICODE ver1.0"
                    3. Unicode3.JPG: truyền file unicode.txt xuống AVR
                    4. Unicode4.JPG: mã UNICODE do AVR trả về sau khi nhận được
                    5. main.c: chương trình mẫu
                    6. Unicode.txt: file Unicode để truyền thử

                    Chúc bạn thành công
                    Attached Files

                    Comment


                    • #11
                      Nguyên văn bởi digicom Xem bài viết
                      btbk, mấy hôm nay bạn quá không vào mạng nên không trả lời bạn kịp. Mình đã thử truyền ký tự UNICODE qua AVR rồi. Vì mình không biết VB nên mình dùng chương trình HyperTerminal để truyền file .txt có ký tự UNICODE trong đó. Kết quả AVR nhận được 2bytes/1ký tự UNICODE như mong muốn. Mình Post kèm chương trình mẫu và một số file khác để bạn tham khảo. Trong đó:
                      1. Unicode1.JPG: hướng dẫn lưu file txt có chứa Unicode
                      2. Unicode2.JPG: Thực hiện chương trình sẽ thấy dòng chữ: "Test UNICODE ver1.0"
                      3. Unicode3.JPG: truyền file unicode.txt xuống AVR
                      4. Unicode4.JPG: mã UNICODE do AVR trả về sau khi nhận được
                      5. main.c: chương trình mẫu
                      6. Unicode.txt: file Unicode để truyền thử

                      Chúc bạn thành công
                      Thank bác digicom nhiều.Mình đã làm như bác và đả thu được kết quả như mong muốn.

                      Comment


                      • #12
                        Mình sẽ phát triển thêm trong VB
                        Last edited by btbk244; 08-10-2008, 10:55.

                        Comment


                        • #13
                          Gửi bác Digicom kính mến.Khi mình bật unicode dưng sẵn để chát yahoo thì kí tự truyền đi sẽ được mã hóa dưới dạng nào hả bác(unicode,unicode big endian hay UTF8).Rất mong được sự giúp đỡ của bác.

                          Comment


                          • #14
                            Nguyên văn bởi btbk244 Xem bài viết
                            Gửi bác Digicom kính mến.Khi mình bật unicode dưng sẵn để chát yahoo thì kí tự truyền đi sẽ được mã hóa dưới dạng nào hả bác(unicode,unicode big endian hay UTF8).Rất mong được sự giúp đỡ của bác.
                            Cái này thì mình pó tay.

                            Comment


                            • #15
                              đề tài này của mấy anh hay quá.em cũng đang tìm hiểu phần giao tiếp vdk với máy tính.anh có tài liệu gì cho em xin với.chứ em chưa biết gì.cảm on anh nhiều nha.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X