main.c

来自「一个AT91SAM7X256 USART驱动实验」· C语言 代码 · 共 85 行

C
85
字号
/**************************************************************************************************
*
* Copyright (C) ART Limited, 2006. All rights reserved.
*
* File: main.c
* Data: 2006.05.16
*
**************************************************************************************************/

#include "project.h"

// ----------------------------------------------------------------------------
//         ATMEL Microcontroller Software Support  -  ROUSSET  -
// ----------------------------------------------------------------------------
// DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
// DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WH ETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// ----------------------------------------------------------------------------
// File Name           : interrupt_Usart.c
// Object              : USART Interrupt Management
// Creation            : JPP   08-Sep-2005
// ----------------------------------------------------------------------------

// Include Standard LIB  files
#include "project.h"

// function in dbgu.c
extern void AT91F_DBGU_Printk(char *buffer);
extern void Init_DBGU(void);

// function in Uart0.c
extern void Init_Uart0(void);

//*--------------------------------------------------------------------------------------
//* Object              : Software entry point
//* Input Parameters    : none.
//* Output Parameters   : none.
//*--------------------------------------------------------------------------------------
int main()
{
	unsigned char val,True = 1;
	unsigned int status;
    	
        AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ;

        //DBGU init
        Init_DBGU();

        //Display general purpose infos
        AT91F_DBGU_Printk("\n\n\r-I- ======================================\n\r");
        AT91F_DBGU_Printk("-I- AT91SAM7X256 Debug Unit Test OK!\n\r");
        AT91F_DBGU_Printk("-I- --------------------------------------\n\n\n\r");

       //初始化串口0 115200 n 8 1
        AT91PS_USART COM0 = AT91C_BASE_US0;
	Init_Uart0();

        AT91F_DBGU_Printk("-I-COM0 Test OK!....\n\r");
        AT91F_DBGU_Printk("-I-Change the serial port line to COM0 and Pressed the Keyboard....\n\r");


	while(True)
	{
		//* get Usart status register
		status = COM0->US_CSR;
		while((status&1) == 0)
			status = COM0->US_CSR;
		val = COM0->US_RHR;

		//* get Usart status register
		status = COM0->US_CSR;
		while((status&2) == 0)
			status = COM0->US_CSR;
		COM0->US_THR = val;
	}
       return 1;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?