#include "DBGU.h"
//DBGU초기화 void DBGU_INIT() { // 1.송/수신부를 리셋. DBGU_CR = (1 << RSTRX) | (1 << RSTTX); //송/수신부를 리셋시키고 동작을 중지 시킴. // 2. 인터럽트 비활성 DBGU_IDR = 0xFFFFFFFF; //관련 인터럽트 비활성화 // 3. 외부 연결용 pin설정. PIOA_ASR = (1 << DRXD) | (1 << DTXD); //Peripheral A 사용. PIOA_BSR = 0; //B모드 비활성. PIOA_PDR = (1 << DRXD) | (1 << DTXD); //I/O포트로 사용하지 않음. // 4. 포트 속도 설정. DBGU_BRGR = CD; //115200bps // 5. 포트 모드 설정. DBGU_MR = (0 << CHMODE) | (4 << PAR); //노멀모드, 패리티x // 6. 송/수신 모드 활성화 DBGU_CR = (1 << TXEN) | (1 << RXEN); //송/수신 허용 return ; }
// 7. Data송신용 함수의 제작 void Send_Char(unsigned char ucSData) { // 7-2 DBGU_SR레지스터 폴링 (송신이 가능한지 check) while(0 == (DBGU_SR & (1 << TXRDY))); //TXRDY비트 검사하여 1이면 탈출. // 1이면 송신준비완료 // 7-3 DBGU 유닛에 문자 전송. DBGU_THR = ucSData; //송신버퍼에 데이터 넣음.
return ; }
// 8. Data 수신용 함수의 제작 unsigned char Recv_Char() { // 8-2 DBGU_SR레지스터 폴링. (수신가능하지 check) while(0 == (DBGU_SR & (1 << RXRDY))); //RXRDY비트 검사하여 1이면 탈출. // 1이면 수신준비완료. return DBGU_RHR; //수신버퍼의 값을 리턴. }
//문자열을 보내는 함수 void Send_String(void *vpData) { //while문과 Send_Char() 만 사용. 변수 추가하지 말 것. while('\0' != (*((unsigned char *)vpData))) { Send_Char(*((unsigned char *)vpData)); (unsigned char *)vpData++; }
return ; }
|