PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp cổng COM và LPT

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

Giao tiếp cổng COM và LPT RS232, RS485 và LPT là những giao tiếp cơ bản và kinh điển khi mới học về vi điều khiển...

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 14-08-2009, 06:01 PM   #1
ThaoBinh90
Đệ tử 1 túi
 
Tham gia ngày: Feb 2009
Bài gửi: 19
:
Receive data trên PIC24 ???

Mình mới tìm hiểu giao tiếp UART trên PIC24.
Khi thực hiện truyền dữ liệu từ PIC lên PC thì được nhưng khi thực hiện nhận dữ liệu từ PC truyền xuống PIC thì không thấy có giá trị nào được ghi xuống.
Không biết trường hợp này là do cấu hình sử dụng PIC hay do vấn đề khác.

Code:
#include <p24FJ256GB106.h>
#include <uart.h>

//Configs, EC clock, No protect, Watchdog Off
_CONFIG1 (
          JTAGEN_OFF
        & GCP_OFF
        & GWRP_OFF
        & BKBUG_OFF
        & COE_OFF
        & ICS_PGx1
        & FWDTEN_OFF
        & WINDIS_OFF
        & FWPSA_PR128
        & WDTPS_PS1
       &nbsp;)
_CONFIG2 (
          IESO_OFF
        & PLLDIV_DIV5
        & PLL_96MHZ_ON
        & FNOSC_PRIPLL
        & FCKSM_CSDCMD
        & OSCIOFNC_ON
        & IOL1WAY_OFF
        & DISUVREG_OFF
        & POSCMOD_HS
       &nbsp;)
#define BRATE   103           // 9600 Bd (BREGH=0)
//#define BRATE   103           // 115200 Bd (BREGH=0)
#define U_ENABLE 0x8000     // enable UART, BREGH=0, 1 stop, no parity
#define U_TX  0x0400         // enable transmission, clear all ?   ags


void initU1( void)
{
        //Unclock thanh ghi OSCCON
    OSCCON = 0x0046; 
    OSCCON = 0x0057; 
    _IOLOCK = 0; 
    // Assign U1RX To Pin RP0
    RPINR18bits.U1RXR = 0;
    // Assign U1CTS To Pin RP1
    RPINR18bits.U1CTSR = 1;
    // Assign U1TX To Pin RP2
    RPOR1bits.RP2R = 3;
    // Assign U1RTS To Pin RP3
    RPOR1bits.RP3R = 4;
    OSCCON = 0x0046; 
    OSCCON = 0x0057; 
    _IOLOCK = 1;
    
    OpenUART1(U_ENABLE , U_TX , BRATE);
    //putsUART1((unsigned int *)"UART SAMPLE CODE\r\n");
} // initU1


int main (void);

int main (void)
{
    unsigned int status;
    unsigned int *rData;
    unsigned long i, j;
    
    initU1();    
     while ( 1 )
    {
          //status = ReadUART1();
        //status = getsUART1(10, *rData, 100000);
        for(i=0; i<600000; i++)
        {
            for(j = 0; j < 2; j++);
            asm("nop");
        }
        if(U1MODEbits.PDSEL == 3)
        {
            WriteUART1(0x66);        
            WriteUART1(U1RXREG);
            //return (U1RXREG);
          }      
        else
        {
            WriteUART1(0x77);
            WriteUART1(U1RXREG);
            //return (U1RXREG & 0xFF);
          }
    } // main loop
    return 1;
}
khi truyền dữ liệu từ PC xuống thì kết quả trả về PC luôn là 0x77 0x00.

có ai biết vấn đề do đâu help me!

thay đổi nội dung bởi: phamminhtuan, 14-08-2009 lúc 06:19 PM. Lý do: định dạng code
ThaoBinh90 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 09:21 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam