View Single Post
Old 30-05-2007, 01:32 AM   #12
minhquancdt
Đệ tử 2 túi
 
minhquancdt's Avatar
 
Tham gia ngày: Mar 2006
Bài gửi: 26
:
Giao tiếp nối tiếp

Trích VD 4.2:
Code:
#include "p30f4012.h"

	_FOSC(CSW_FSCM_OFF & FRC_PLL4);		//Clock = 32 MHz
	_FWDT(WDT_OFF);
	_FBORPOR(MCLR_EN & PBOR_OFF & PWMxL_ACT_HI & PWMxH_ACT_HI);
	_FGS(CODE_PROT_OFF);

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

//Cac bien toan cuc
unsigned short temp;

//------------------------------------------------------------------------------
//Chuong trinh chinh
int main(void) {
	Init_UART1_Module();	//Khoi tao module UART1
	while (1) {
		if (U1STAbits.URXDA) {		//Cho den khi nhan duoc mot ky tu
			temp = U1RXREG;			//Doc ky tu da nhan duoc vao temp
			U1TXREG = temp + 1;		//Gui tra ky tu da duoc sua doi (cong 1 vao)
		};
	};
}

//Chuong trinh con khoi tao module UART1
void Init_UART1_Module(void) {
	U1MODE = 0x8000;		//Main I/O, 8-bit, no parity, 1 stop bit
	U1STA = 0x0400;			//bit10=UTXEN
	U1BRG = (((8000000/38400)/16)-1);	//38400 bps @ Fcy = 8 MHz
}
Em chưa rõ là biến temp ở đây có phải sẽ nhận giá trị kiểu char? Nếu em muốn truyền từ PC xuống chip chuỗi "123456" thì mỗi lần nhận 1 kí tự, biến temp sẽ thay đổi.

Em muốn nhận luôn 123456 làm 1 hệ số k = 123456. Có hàm nào sẵn có thực hiện việc ghép nối này, hay mình phải viết riêng vậy anh Nam?
minhquancdt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn