Thông báo

Collapse
No announcement yet.

[Giúp đỡ]PIC16F887 không nhận được dữ liệu từ module GSM SIM900 dù gọi,nhắn tin tốt

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

  • [Giúp đỡ]PIC16F887 không nhận được dữ liệu từ module GSM SIM900 dù gọi,nhắn tin tốt

    Mình sử dụng PIC16F887 và module GSM SIM900 để gửi nhận tin nhắn,cuộc gọi.Vấn đề là những lệnh AT từ PIC truyền xuống thì module SIM900 đều nhận được và thực hiện tốt việc nhắn tin,gọi hay kết nối GPRS.Nhưng dữ liệu phản hồi từ module SIM900 thì PIC lại không nhận được??Mình dùng ngắt nối tiếp và hàm getc() để nhận dữ liệu, thạch anh 11.0592MHZ, nối chéo Rx-Tx, baud 9600 nhưng không nhận được gì hết!
    Đây là code phần ngắt nhận:
    #INT_RDA
    void RDA_isr()
    {
    c=getc();
    if (xbuff >= buffer_size)
    xbuff=0;
    else
    buffer[xbuff++]=c;
    }
    Bạn nào gặp trường hợp giống mình hoặc biết cách khắc phục thì giúp mình nhé!

  • #2
    Pic sao lại dùng crystal lẻ??? Chỉ dùng các crystal là bội của 4. Về vấn đề nối chéo thì xem lại mức điện áp
    Web:
    ->Nhận thiết kế, hoàn thiện dự án, sản phẩm điện tử<-
    -->Giải pháp GSM/GPRS/GPS - Công nghệ RFID<--

    Comment


    • #3
      Thạch anh lẻ để khi tính toán baudrate sẽ cho sai số nhỏ nhất (0%)

      Comment


      • #4
        @@ lôi cái lý thuyết bên 8051 áp dụng với pic. Ko còn gì để nói
        Web:
        ->Nhận thiết kế, hoàn thiện dự án, sản phẩm điện tử<-
        -->Giải pháp GSM/GPRS/GPS - Công nghệ RFID<--

        Comment


        • #5
          Nguyên văn bởi constantra Xem bài viết
          Mình sử dụng PIC16F887 và module GSM SIM900 để gửi nhận tin nhắn,cuộc gọi.Vấn đề là những lệnh AT từ PIC truyền xuống thì module SIM900 đều nhận được và thực hiện tốt việc nhắn tin,gọi hay kết nối GPRS.Nhưng dữ liệu phản hồi từ module SIM900 thì PIC lại không nhận được??Mình dùng ngắt nối tiếp và hàm getc() để nhận dữ liệu, thạch anh 11.0592MHZ, nối chéo Rx-Tx, baud 9600 nhưng không nhận được gì hết!
          Đây là code phần ngắt nhận:
          #INT_RDA
          void RDA_isr()
          {
          c=getc();
          if (xbuff >= buffer_size)
          xbuff=0;
          else
          buffer[xbuff++]=c;
          }
          Bạn nào gặp trường hợp giống mình hoặc biết cách khắc phục thì giúp mình nhé!
          Bạn tách thành 2 phần để test trước đi. Vd từ PIC tới PC, dùng Terminal với dây cáp gắn vô cổng COM (hoặc USB-to-COM với laptop) , kiểm tra truyền nhận UART ok không rồi mới nối với SIM900.
          ChipFC - -
          Chuyên các sản phẩm hệ thống nhúng, điện tử: arduino, gsm, gps...

          Comment


          • #6
            Nguyên văn bởi constantra Xem bài viết
            Mình sử dụng PIC16F887 và module GSM SIM900 để gửi nhận tin nhắn,cuộc gọi.Vấn đề là những lệnh AT từ PIC truyền xuống thì module SIM900 đều nhận được và thực hiện tốt việc nhắn tin,gọi hay kết nối GPRS.Nhưng dữ liệu phản hồi từ module SIM900 thì PIC lại không nhận được??Mình dùng ngắt nối tiếp và hàm getc() để nhận dữ liệu, thạch anh 11.0592MHZ, nối chéo Rx-Tx, baud 9600 nhưng không nhận được gì hết!
            Đây là code phần ngắt nhận:
            #INT_RDA
            void RDA_isr()
            {
            c=getc();
            if (xbuff >= buffer_size)
            xbuff=0;
            else
            buffer[xbuff++]=c;
            }
            Bạn nào gặp trường hợp giống mình hoặc biết cách khắc phục thì giúp mình nhé!


            Có lẻ sai mức điện áp 2 chân thôi. bạn nên chọn thạch anh 20MHZ
            TX-PIC ----->RX-SIM (Phân áp 2k2,3k3 nối mass)
            RX-PIC------>TX-SIM (1k keo nguon 5V) la ok

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...
            X