Thông báo

Collapse
No announcement yet.

VC++ và COM

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

  • VC++ và COM

    chào các anh, em đang cần làm gấp 1 cái chương trình sử dụng VC++ để đọc tín hiệu từ COM vào, có ai biết ko chỉ em với.

    công việc là:

    Tín hiệu cần đọc từ cảm biến >> ADC > AVR>> qua MAX>> COM > Chường trình console (tức không phải là 1 GUI). vì em cần dùng giá trị này nhằm thực hiện thuật toán trong chương trình viết trong VC++ chứ ko cần làm GUI làm gì, mong các anh cứu giúp. xin đa tạ

  • #2
    Tài liệu VC++ và COM

    Đây là tài liệu khá cụ thể về lập trình truyền thông nối tiếp qua COM bằng Visual C++. Thực tế để làm truyền thông nối tiếp có rất nhiều biện pháp. Đây là bài toán đầu tiên cho những người mới làm quen với vi điều khiển, nếu thành công trong việc truyền thông với máy tính thì việc thực hiện truyền thông với các thiết bị ngoại vi khác cũng sẽ đơn giản. Chúc bạn thành công
    Attached Files
    http://techpal.vn
    Chia sẻ công nghệ, cùng thành công

    Comment


    • #3
      em ko biết nói sao chỉ xin nói đa tạ bác, em bị thầy cho làm lại môn tiểu luận mà căng quá, chạy suốt mà ko hoàn thành, còn tối nay và ngày mai thôi , em sẽ test ngay giờ luôn, nếu được thì may mắn cho cả 3 đời nhà em. đa tạ bác

      Comment


      • #4
        bác ơi có cách nào giả xung cho chân COM nhận vào ko?? vì em chết con MAX rồi, hichic (em tính giả tín hiệu gửi tới COM) rồi sáng mai đi mua gấp con MAX, đa tạ

        Comment


        • #5
          Cho em hỏi thêm chút, bằng cách nào để mình test giá trị đã đọc đúng chưa ạ???? thankss bác nhiều

          Comment


          • #6
            Nguyên văn bởi nghoang Xem bài viết
            bác ơi có cách nào giả xung cho chân COM nhận vào ko?? vì em chết con MAX rồi, hichic (em tính giả tín hiệu gửi tới COM) rồi sáng mai đi mua gấp con MAX, đa tạ
            Nếu trên máy tính thì để thử nghiệm truyền thông mình thường nối chân 2 và chân 3 của cổng COM rồi thử truyền gì thì nhận được ấy. Bạn thử làm như vậy với vi điều khiển nghĩa là nối chân RxD và TxD của vi điều khiển với nhau sau đó thử truyền thông xem nhé. Chúc bạn thành công
            http://techpal.vn
            Chia sẻ công nghệ, cùng thành công

            Comment


            • #7
              character from the serial port called ReadByte.

              ví dụ 2 là để đọc một chữ (ký tự) chứ ko phải đọc giá trị truyền vào từ AVR=> MAX => COM bác ạ..

              Em đang cần truyền 1 giá trị (dạng số thực ví dụ 1.2 volt, 2.3volt từ cảm biến => ADC => AVR> MAX=>COM bác ạ)

              xin chờ sự giúp đỡ từ các bác..

              Comment


              • #8
                Nguyên văn bởi techpro Xem bài viết
                Nếu trên máy tính thì để thử nghiệm truyền thông mình thường nối chân 2 và chân 3 của cổng COM rồi thử truyền gì thì nhận được ấy. Bạn thử làm như vậy với vi điều khiển nghĩa là nối chân RxD và TxD của vi điều khiển với nhau sau đó thử truyền thông xem nhé. Chúc bạn thành công
                Ý em là em nhận vào chứ ko phải truyền ra COM ạ.

                Vậy có cách nào để biết chương trình nhận (đọc ) từ COM của mình là đúng bác nhĩ???

                đa tạ sự trợ giúp của bác

                Comment


                • #9
                  Nguyên văn bởi nghoang Xem bài viết
                  character from the serial port called ReadByte.

                  ví dụ 2 là để đọc một chữ (ký tự) chứ ko phải đọc giá trị truyền vào từ AVR=> MAX => COM bác ạ..

                  Em đang cần truyền 1 giá trị (dạng số thực ví dụ 1.2 volt, 2.3volt từ cảm biến => ADC => AVR> MAX=>COM bác ạ)

                  xin chờ sự giúp đỡ từ các bác..
                  Thực chất vấn đề của bạn là đọc giá trị từ một kênh analog của AVR sau đó chuyển thành điện áp và gửi lên qua Max232 qua cổng COM lên máy tính và hiển thị trên máy tính phải không?
                  http://techpal.vn
                  Chia sẻ công nghệ, cùng thành công

                  Comment


                  • #10
                    vâng đúng rồi bác ạ

                    Comment


                    • #11
                      Nguyên văn bởi nghoang Xem bài viết
                      vâng đúng rồi bác ạ
                      Vậy bạn tìm hiểu kỹ tài liệu đó là có thể làm được. Xong một lưu ý nữa, bạn hãy chuyển từ giá trị điện áp đọc được (đọc giá trị kênh analog và quy đổi) thành xâu ký tự để truyền. Khi truyền nên thêm hai kí tự kết thúc là <CR><LF> để việc đọc dữ liệu trên máy tính được tiến hành dễ dàng hơn. Hi vọng bạn sẽ làm được
                      http://techpal.vn
                      Chia sẻ công nghệ, cùng thành công

                      Comment


                      • #12
                        tôi chẳng biết gì về AVR cả nhưng nếu bạn muốn truyền một số thực thì cũng có nhiều cách, cách hao tốn tài nguyên nhất là convert nó thánh string rồi truyền lên PC, PC đọc string rồi lại convert thành số thực. Có thể dùng cách truyền thành 2 số nguyên, số thứ nhất hiển thị giá trị trước dấu "," và số tiếp theo là phần thập phân. PC nhận được lại ghép chúng vào thành số thực. Ví dụ muốn truyền 1.2 chẳng hạn bạn truyền một khung như sau:
                        xx // start byte
                        0x00 // hi byte
                        0x01 // low byte
                        (yy) // có thể thêm ki tự '.' nếu muốn
                        0x00 // hi byte
                        0x02 // lơ byte
                        zz // stop byte

                        còn nếu muốn kiểm tra PC nhận có chính xác hay không thì bạn có thể test bằng cách cho AVR truyền một chuỗi hằng số nào đó. nếu PC nhận được chuỗi hằng số đúng như vậy thì là chính xác.
                        CUNG CẤP PSOC, MẠCH NẠP
                        CHUYỂN ĐỔI USB <-> RS485 AutoBaud
                        RS232 <-> RS485 MultiBaud
                        MẠCH NẠP USBPPI S7-200
                        Mobile: 0906076116
                        Email:

                        Comment


                        • #13
                          cách convert một giá trị thành string ta làm cách nào vậy các bác?? em cảm ơn các bác nhiều!!!

                          hight byte và low byte là gì ạ???

                          em xin lỗi vì hỏi nhiều quá, nhưng thực sự em chưa nắm được nội dung của bác encoder chỉ ạ. cảm ơn các bác

                          Comment


                          • #14
                            Nguyên văn bởi nghoang Xem bài viết
                            cách convert một giá trị thành string ta làm cách nào vậy các bác?? em cảm ơn các bác nhiều!!!

                            hight byte và low byte là gì ạ???

                            em xin lỗi vì hỏi nhiều quá, nhưng thực sự em chưa nắm được nội dung của bác encoder chỉ ạ. cảm ơn các bác
                            Bạn đọc trong help của trình dịch CodeVision sẽ có. Lâu rồi tôi không làm nên không nhớ chính xác. Còn để làm tỉ mỉ phần truyền thông thì cũng được nhưng làm ngay lúc này với bạn thì có thể hơi khó.
                            Chúc bạn thành công
                            http://techpal.vn
                            Chia sẻ công nghệ, cùng thành công

                            Comment


                            • #15
                              để convert số nguyên thành string bạn dùng thư viện có sẵn trong trình biên dịch. Tôi chưa lập trình với AVR bao giờ nên không thể chỉ cho bạn cụ thể (đành nhờ các pro về AVR), nhưng thông thưong với C các hàm này hay nằm trong thư viện "stdlib.h" và hàm convert thường là itoa(...) : số nguyên - > string, hay ftoa(...): số thực -> string.
                              một số nguyên thương được biểu diễn thành 16bit = 2bytes.
                              ví dụ

                              2007 = 00000111 11010111 (mô tả theo nhị phân) = 07 D7 (mô tả theo hexa)
                              theo đó 07 là hight byte
                              và D7 gọi là low byte
                              số nguyên 2 = 0x0002 và 1 = 0x0001 -> chắc bạn đã hiểu về khung bản tin ở trên.
                              vói một số nguyên n bạn có thể lấy hight_byte và low_byte của nó theo bằng cách
                              hight_byte = n >> 8; // dịch phải 8 bits
                              low_byte = n & 0xff; hoặc chỉ cần: low_byte = n nếu bạn khai báo low_byte có kiểu là byte.
                              CUNG CẤP PSOC, MẠCH NẠP
                              CHUYỂN ĐỔI USB <-> RS485 AutoBaud
                              RS232 <-> RS485 MultiBaud
                              MẠCH NẠP USBPPI S7-200
                              Mobile: 0906076116
                              Email:

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X