#include"at91rm9200.h"
void pio_init()
{ AT91C_BASE_SYS->PIOA_PDR=0XC0000000; AT91C_BASE_SYS->PIOA_PSR=0XC0000000; } void pmc_init() { AT91C_BASE_SYS->CKGR_MOR=0XFF01; while((AT91C_BASE_SYS->PMC_SR & 0X01)==0); AT91C_BASE_SYS->PMC_MCKR=0X105; while((AT91C_BASE_SYS->PMC_SR & 0X08)==0); } void dbgu_init() { AT91C_BASE_SYS->DBGU_CR=0X10C; AT91C_BASE_SYS->DBGU_CR=0X50; AT91C_BASE_SYS->DBGU_MR=0X800; AT91C_BASE_SYS->DBGU_BRGR=0X1E; } void send_ascii(char temp) //可以发送单个字符(一个字符占一个字节) { while((AT91C_BASE_SYS->DBGU_CSR & 0X02)==0);//发送就绪 AT91C_BASE_SYS->DBGU_THR=temp; } void send_huiche() //回车换行函数 { send_ascii(0x0a); send_ascii(0x0d); } void send_char(char temp) //发送四位(即:半个字节) { if(temp < 10) temp=temp+48; else temp=temp+55; while((AT91C_BASE_SYS->DBGU_CSR & 0X02)==0);//发送就绪 AT91C_BASE_SYS->DBGU_THR=temp; }void send_string(char *p) //发送字符串(任意位)
{ while(*p!='\0') { while((AT91C_BASE_SYS->DBGU_CSR & 0X02)==0);//发送就绪 AT91C_BASE_SYS->DBGU_THR=*p; p++; } }int main()
{ char p='a'; char *q="jiangxiaohui"; pio_init(); pmc_init(); dbgu_init(); send_huiche(); send_char( (p & 0xF0)>>4 ); send_char( p & 0x0F ); //****发送字符******* send_huiche(); send_ascii(p); send_huiche(); send_ascii('a'); //*****发送字符串********** send_huiche(); send_string(q); send_huiche(); send_string("jiangxiaohui");}