⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testuart.c

📁 ARM9.2的第4个程序!!!!!!!!!!!
💻 C
字号:
//接个数据,并发送这个数据
//自建的工程,数据接发不对。why?
#include "2440lib.h"
#include "2440addr.h"

#define  BPS 115200

int xmain(void)
{
	unsigned char buf;         
   
	ChangeClockDivider(3,1);//1:3:6
	ChangeMPllValue(127,2,1);//405MHZ
	Port_Init();
	Isr_Init();		   
     
    //-------------------set UART--------------------//
    //选择功能管脚
    //GPH0 -> nCTS0
    //GPH1 -> nRTS0
    //GPH2 -> TXD0
    //GPH3 -> RXD0
    //GPH4 -> TXD1
    //GPH5 -> RXD1
    //GPH6 -> nRTS1/TXD2
    //GPH7 -> nTXS1/RXD2
    rGPHCON = ( rGPHCON & (~(0xffff)) ) | (0xaaa0);//
    //上拉电阻
    rGPHUP = 0x0;    // The pull up function is enable
    
    //设置串口线性控制器寄存器
    rULCON0 |= 	 (0<<6)//No infra-red
    			|(0<<5)//No panity(set 0xx)
    			|(0<<2)//One stop bit per frame
    			|(3<<0);//11 = 8-bit
    
    //设置串口控制寄存器
    rUCON0 |=  (0<<10)//00 = PCLK
    		 |(1<<9)//Tx interrupt Type = Level
    		 |(1<<8)//Rx interrupt Type = Level
    		 |(0<<7)//Rx Timer out disable
    		 |(1<<6)//Rx error status interrupt enable
    		 |(0<<5)//Loopback mode disable     		 
    		 |(0<<4)//Send break signal disable
    		 |(1<<2)//Transmit mode (01 = inerrupt request or polling mode)
    		 |(1<<0);//Receive mode (01 = interupt request or polling mode)

	//设置串口FIFO控制寄存器
	rUFCON0 |=   (3<<6)//Tx FIFO Trigger Level(11 = 48-byte)
				|(3<<4)//Rx FIFO Trigger Level(11 = 32-byte)
				|(1<<2)//Tx FIFO reset
				|(1<<1)//Rx FIFO reset
				|(1<<0);//FIFO Eable
	//设置串口波特率分频寄存器
	rUBRDIV0 = (int) ( PCLK/(BPS*16) ) - 1 ;//PCLK, BPS	 	
		
	while(1)//接什么,发什么
	{
		while( !(rUTRSTAT0&0x01) );//Receive data ready
		buf = rURXH0;//Resveice data
		while( !(rUTRSTAT0&0x02) );//Transmit buffer empty
		rUTXH0 = buf;//Transmit data 
	}
}    

⌨️ 快捷键说明

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