Chinaunix首页 | 论坛 | 博客
  • 博客访问: 800473
  • 博文数量: 124
  • 博客积分: 1927
  • 博客等级: 上尉
  • 技术积分: 932
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-31 14:06
文章分类

全部博文(124)

文章存档

2018年(5)

2017年(2)

2016年(6)

2015年(4)

2014年(24)

2013年(7)

2012年(11)

2011年(13)

2010年(52)

我的朋友

分类:

2010-09-08 15:28:22

  1. //*----------------------------------------------------------------------------    
  2. //*         ATMEL Microcontroller Software Support  -  ROUSSET  -    
  3. //*----------------------------------------------------------------------------    
  4. //* The software is delivered "AS IS" without warranty or condition of any    
  5. //* kind, either express, implied or statutory. This includes without    
  6. //* limitation any warranty or condition with respect to merchantability or    
  7. //* fitness for any particular purpose, or against the infringements of    
  8. //* intellectual property rights of others.    
  9. //*----------------------------------------------------------------------------    
  10. //* File Name           : main.c    
  11. //* Object              : main application written in C    
  12. //* Creation            : ODi   06/26/2002    
  13. //*    
  14. //*----------------------------------------------------------------------------    
  15.    
  16. #include     
  17.    
  18. #include "AT91RM9200.h"    
  19. #include "lib_AT91RM9200.h"    
  20.    
  21. // AT91F_DBGU_Printk is defined in init.c    
  22. extern void AT91F_DBGU_Printk(char *);   
  23.    
  24. void AT91F_DBGU_Printf(char *fmt,...)   
  25. {   
  26.     va_list ap;   
  27.     char string[256];   
  28.    
  29.     va_start(ap,fmt);   
  30.     vsprintf(string,fmt,ap);   
  31.     AT91F_DBGU_Printk(string);   
  32.     va_end(ap);   
  33. }   
  34.    
  35. //*----------------------------------------------------------------------------    
  36. //* \fn    AT91F_DBGU_getc    
  37. //* \brief This function is used to receive a character to the DBGU channel    
  38. //*----------------------------------------------------------------------------    
  39. char AT91F_DBGU_Getc(void)   
  40. {   
  41.     while (!AT91F_US_RxReady((AT91PS_USART)AT91C_BASE_DBGU));   
  42.     return AT91F_US_GetChar((AT91PS_USART) AT91C_BASE_DBGU);   
  43. }   
  44.    
  45.    
  46. int main()   
  47. {   
  48.     unsigned int tick;   
  49.     int i, flag=0;   
  50.    
  51. //* USART0 test    
  52.    
  53. #if 1    
  54.        
  55.     AT91F_DBGU_Printk("========USART0 ECHO TEST==========\n\r");   
  56.     AT91F_DBGU_Printk("Plug serial cable into COM2\n\r");   
  57.     AT91F_DBGU_Printk("\'q\' to quit\n\r");   
  58.     // Open PIO for USART0    
  59.     AT91F_US0_CfgPIO();   
  60.     AT91F_US0_CfgPMC();   
  61.     // Configure USART0     
  62.     AT91F_US_Configure (   
  63.         AT91C_BASE_US0,            // USART2 base address    
  64.         60000000,                  // 60 MHz    
  65.         AT91C_US_ASYNC_MODE ,      // mode Register to be programmed    
  66.         115200,                    // baudrate to be programmed    
  67.         0);                        // timeguard to be programmed    
  68.    
  69.     // Enable Transmitter & Receiver    
  70.     AT91F_US_EnableTx((AT91PS_USART) AT91C_BASE_US0);   
  71.     AT91F_US_EnableRx((AT91PS_USART) AT91C_BASE_US0);   
  72.        
  73.     // USART0 echo     
  74.     while(1)   
  75.     {   
  76.         char c;   
  77.            
  78.         if(AT91F_US_RxReady(AT91C_BASE_US0))   
  79.         {   
  80.             if( (c = AT91F_US_GetChar(AT91C_BASE_US0)) != 'q')   
  81.                 AT91F_US_PutChar(AT91C_BASE_US0, c);   
  82.             else    
  83.                 break;   
  84.         }   
  85.     }   
  86.        
  87. #endif    
  88.    
  89. #if 1       
  90.     //* USART1 test    
  91.     AT91F_DBGU_Printk("========USART1 ECHO TEST==========\n\r");   
  92.     AT91F_DBGU_Printk("Plug serial cable into COM3\n\r");   
  93.     AT91F_DBGU_Printk("\'q\' to quit\n\r");   
  94.     // Open PIO for USART1    
  95.     AT91F_US1_CfgPIO();   
  96.     AT91F_US1_CfgPMC();   
  97.     // Configure USART0     
  98.     AT91F_US_Configure (   
  99.         AT91C_BASE_US1,            // USART2 base address    
  100.         59904000,                  // 60 MHz    
  101.         AT91C_US_ASYNC_MODE ,      // mode Register to be programmed    
  102.         115200,                    // baudrate to be programmed    
  103.         0);                        // timeguard to be programmed    
  104.    
  105.     // Enable Transmitter & Receiver    
  106.     AT91F_US_EnableTx((AT91PS_USART) AT91C_BASE_US1);   
  107.     AT91F_US_EnableRx((AT91PS_USART) AT91C_BASE_US1);   
  108.    
  109.     // USART1 echo     
  110.     i = 0;   
  111.     while(1)   
  112.     {   
  113.         char c;   
  114.         //char temp[1024];    
  115.         //int i = 0;    
  116.            
  117.         if(AT91F_US_RxReady(AT91C_BASE_US1))   
  118.         {   
  119.             if( (c = AT91F_US_GetChar(AT91C_BASE_US1)) != 'q')   
  120.             {   
  121.                 if(AT91F_US_TxReady(AT91C_BASE_US1))   
  122.                     AT91F_US_PutChar(AT91C_BASE_US1, c);   
  123.                 //AT91F_DBGU_Printk(&c);    
  124.                 //temp[i++] = c;    
  125.             }   
  126.             else if(c == 0x89)   
  127.                 AT91F_DBGU_Printk("error");   
  128.             else   
  129.                 break;   
  130.         }   
  131.     }   
  132.    
  133. #endif    
  134.        
  135.     AT91F_DBGU_Printk("Test OK");   
  136.        
  137.     while(1);   
  138. }   
  139.    

阅读(1368) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~