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 Bài Trong Ngày 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 16-10-2009, 05:50 PM   #1
hnam
Nhập môn đệ tử
 
Tham gia ngày: Jun 2009
Bài gửi: 1
:
truyền nhận bằng UART trong PIC24

hiện tại mình đang tìm hiểu giao thức truyền UART trong PIC24FJ128GA010 mình sử dụng kit phát triển explorer 16 của microchip. mình đã đọc kĩ phần datasheet nhưng mình test thử 3 ngày rồi mà không thành công mong các bạn góp ý cho code mẫu sau. mục tiêu của code mẫu là nhân data từ hyper terminal và trả lại. hệ thống mình sử dụng thạch anh 8 mhz

#include <p24fj128ga010.h>

_CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & COE_OFF & FWDTEN_OFF & ICS_PGx2)
_CONFIG2( FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMOD_HS & FNOSC_PRI)


// I/O definitions for the Explorer16
#define CTS _RF12 // Cleart To Send, input, HW handshake
#define RTS _RF13 // Request To Send, output, HW handshake
#define TRTS TRISFbits.TRISF13 // tris control for RTS pin

// timing and baud rate calculations
#define BRATE 12 // 19200 baud (BREGH=0)
#define U_ENABLE 0x8000 // enable the UART peripheral (BREGH=0)
#define U_TX 0x0400 // enable transmission


// initialize the UART2 serial port
void initU2( void)
{
TRISFbits.TRISF5 = 0;
TRISFbits.TRISF4 = 1;
LATFbits.LATF5 = 1;
U2BRG = BRATE;
U2MODE = U_ENABLE;
U2STA = U_TX;
TRTS = 0; // make RTS output
RTS = 1; // set RTS default status
} // initU2


// send a character to the UART2 serial port
char putU2( char c)
{
//while ( CTS); // wait for !CTS, clear to send
while ( U2STAbits.UTXBF); // wait while Tx buffer full
U2TXREG = c;
return c;
} // putU2


// wait for a new character to arrive to the UART2 serial port
char getU2( void)
{
//RTS = 0; // assert Request To Send !RTS
while ( !U2STAbits.URXDA); // wait for a new character to arrive
//RTS = 1;
return U2RXREG; // read the character from the receive buffer
}// getU2



main()
{
char c;

// 1. init the UART2 serial port
initU2();
//KHOI_DONG_LCD();

// 2. prompt
putU2( 'n');
putU2( 't');

// 3. main loop
while ( 1)
{

// 3.1 wait for a character
c = getU2();

// 3.2 echo the character
putU2( c);
//PUTLCD( c );
} // main loop

}// main
hnam vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


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à 04:19 PM.


Đượ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