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

📄 main.c

📁 GPL162001的UART模組demo程式
💻 C
字号:
/***************************************************************
Date:        2007 03 09
Description: IM-Robot main function

***************************************************************/

#include "IM_Robot.h"
#include "math.h"

UInt16 RxData = 0;
UInt16 i=0, j=0;

int main()
{
	Disable_IRQ();
	System_Init();
	INT_IRQ();
	Set_UART();
	
	for (i=0;i<128;i++)
	{
		RS232Tx(i);
	}
	
	while(1)
	{
		
	}
	return 0;
}

void System_Init()
{
	*P_Clock_Ctrl = 0x8400;      // Enable PLL, System clk is PLL clk, 
	                             // 32768Hz weak mode, IOB0 32768Hz output disable, 
	                             // IOA and IOB wake up function disable, SYSCLK is PLL(48MHz)
	*P_LVR_Ctrl = 0x0002;        // Disable Low Voltage Reset function
		
/************** GPIO setting **************/
    // IOA
    *P_IOA_Data = 0x0000;        // Set IOA[15:0] as output 0x0000
	*P_IOA_Attrib = 0xFFFF;      // IOA[1:0] control motor rotate direction (output)
	*P_IOA_Dir = 0xFFFF;
	// IOD
	IOD_Data_Reg->B.bit6 = 1;    // Set IOD[6] as input pull-high to enable UART
	IOD_Attrib_Reg->B.bit6 = 0;
	IOD_Dir_Reg->B.bit6 = 0;	
}	

void Set_UART()
{
	UARTIrDA_Ctrl_Reg->W = 0x9060;   // FIFO disable, Rx INT enable, UART enable
	UARTIrDA_BaudRate_Reg->W = 0x5;  // No delay between transmitting, BaudRate is 115200bps
}

void RS232Tx(UInt16 TxData)
{
	UARTIrDA_Data_Reg->W = TxData;
	for (j=0;j<35;j++);
}

void IRQ3(void) __attribute__ ((ISR));
void IRQ3(void)
{	
	if (UARTIrDA_Status_Reg->B.RXIF == 1)
	{
		RxData = UARTIrDA_Data_Reg->W;
	}
}

⌨️ 快捷键说明

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