View Single Post
Old 28-10-2009, 11:11 AM   #1
spin
Đệ tử 1 túi
 
Tham gia ngày: Aug 2007
Bài gửi: 22
:
bị lỗi khi chạy thử giao tiếp UART


code:
/************************************************** *****************************
; viet lai Vidu4-1.c cua anh Nam bang C30 de chay tren mot dsPIC *
; Chuong trinh thuc hien viec sau: Xuat chuoi ky tu 'Xin chao!' ra cong *
; RS232 *
;************************************************* ******************************
#include "p33FJ256GP710.h"

//Cac prototype cho cac chuong trinh con
void Init_TMR1(void);
void Init_UART1_Module(void);

//Bang hang so trong ROM
const unsigned char __attribute__ ((space(psv), address (0x0200)))
Chuoi1[] = "Xin chao! \0";

//Cac bien toan cuc
unsigned char flag, idx;

//------------------------------------------------------------------------------
//Chuong trinh chinh
int main(void)
{
// Init_TMR1(); //Khoi tao Timer 1
Init_UART1_Module(); //Khoi tao module UART1
_PSV=1;
PSVPAG = __builtin_psvpage(Chuoi1);
flag = 0; //Xoa co bao het thoi gian cho
while (1)
{
if (flag)
{ //Cho den khi het thoi gian cho
idx = 0;
while (Chuoi1[idx])
{ //Neu chua het chuoi thi
U1TXREG = Chuoi1[idx++]; //Xuat tiep 1 ky tu
while (!U1STAbits.TRMT); //Cho den khi truyen xong ky tu
};
flag = 0;
};
};
}

//Chuong trinh con khoi tao module UART1
void Init_UART1_Module(void)
{
U2MODEbits.STSEL = 0; //Main I/O, 8-bit, no parity, 1 stop bit
U2STAbits.UTXEN = 1; // Enable UART Tx
U1BRG = (((8000000/38400)/16)-1); //38400 bps @ Fcy = 8 MHz
}

mong anh chị giúp đỡ
spin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn