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

📄 dm642main.c

📁 CCS下运行的SEED的UART通信的例子程序
💻 C
字号:
/********************************************************************/
/*  Copyright 2004 by SEED Incorporated.							*/
/*  All rights reserved. Property of SEED Incorporated.				*/
/*  Restricted rights to use, duplicate or disclose this code are	*/
/*  granted through contract.									    */
/*  															    */
/********************************************************************/
#include <csl.h>
#include <csl_emifa.h>
#include <csl_irq.h>
#include <csl_chip.h>

#include "seeddm642.h"
#include "seeddm642_uart.h"

/*SEEDDM642的emifa的设置结构*/
EMIFA_Config Seeddm642ConfigA ={
	   0x00052078,/*gblctl EMIFA(B)global control register value */
	   			  /*将CLK6、4、1使能;将MRMODE置1;使能EK2EN,EK2RATE*/
	   0xffffffd3,/*cectl0 CE0 space control register value*/
	   			  /*将CE0空间设为SDRAM*/
	   0x73a28e01,/*cectl1 CE1 space control register value*/
	   			  /*Read hold: 1 clock;
	   			    MTYPE : 0000,选择8位的异步接口
	   			    Read strobe :001110;14个clock宽度
	   			    TA:2 clock; Read setup 2 clock;
	   			    Write hold :2 clock; Write strobe: 14 clock
	   			    Write setup :7 clock
	   			    --					 ---------------
	   			  	  \		 14c		/1c
	   			 	   \----------------/ */
	   0x22a28a22, /*cectl2 CE2 space control register value*/
       0x22a28a42, /*cectl3 CE3 space control register value*/
	   0x57115000, /*sdctl SDRAM control register value*/
	   0x0000081b, /*sdtim SDRAM timing register value*/
	   0x001faf4d, /*sdext SDRAM extension register value*/
	   0x00000002, /*cesec0 CE0 space secondary control register value*/
	   0x00000002, /*cesec1 CE1 space secondary control register value*/
	   0x00000002, /*cesec2 CE2 space secondary control register value*/
	   0x00000073 /*cesec3 CE3 space secondary control register value*/	
};

SEEDDM642_UART_Config UartConfig ={
	   0x00,/*寄存器IER*/
	   0x57,/*寄存器FCR*/
	   0x03,/*寄存器LCR*/
	   0x01,/*寄存器MCR*/
};

extern far void vectors();

Uint8 IOreadback;
Uint16 buffer;
SEEDDM642_UART_Handle SEEDuartHandleA;
SEEDDM642_UART_Handle SEEDuartHandleB;

/*此程序可将四个采集口的数据经过Video Port0送出*/
void main()
{
	
/*-------------------------------------------------------*/
/* perform all initializations                           */
/*-------------------------------------------------------*/
	/*Initialise CSL,初始化CSL库*/
	CSL_init();
/*----------------------------------------------------------*/
	/*EMIFA的初始化,将CE0设为SDRAM空间,CE1设为异步空间
	 注,DM642支持的是EMIFA,而非EMIF*/
	EMIFA_config(&Seeddm642ConfigA);
/*----------------------------------------------------------*/
	/*中断向量表的初始化*/
	//Point to the IRQ vector table
    IRQ_setVecs(vectors);
   
/*----------------------------------------------------------*/
/*测试SEEDDM642的数字输入与输出*/    
    
    /*输出测试值*/
    SEEDDM642_rset(SEEDDM642_IOOUT, 0x55);
    /*延时1ms时间*/
    SEEDDM642_waitusec(1);
    /*读回测试值*/
    IOreadback = SEEDDM642_rget(SEEDDM642_IOOUT);
    /*延时1ms时间*/
    SEEDDM642_waitusec(1);
    
    /*输出测试值*/
    SEEDDM642_rset(SEEDDM642_IOOUT, 0xaa);
    /*延时1ms时间*/
    SEEDDM642_waitusec(1);
    /*读回测试值*/
    IOreadback = SEEDDM642_rget(SEEDDM642_IOOUT);
    /*延时1ms时间*/
    SEEDDM642_waitusec(1);
    
    /*输出测试值*/
    SEEDDM642_rset(SEEDDM642_IOOUT, 0x33);
    /*延时1ms时间*/
    SEEDDM642_waitusec(1);
    /*读回测试值*/
    IOreadback = SEEDDM642_rget(SEEDDM642_IOOUT);
    /*延时1ms时间*/
    SEEDDM642_waitusec(1);
/*----------------------------------------------------------*/
/*测试串口A*/
    /* Open UART */
    SEEDuartHandleA = SEEDDM642_UART_open(SEEDDM642_UARTA, 
    									  SEEDDM642_UART_BAUD9600, 
    									  &UartConfig);
    /*Open UARTB*/
    SEEDuartHandleB = SEEDDM642_UART_open(SEEDDM642_UARTB, 
    									  SEEDDM642_UART_BAUD9600, 
    									  &UartConfig);
    /* Loop through 256 bytes */
     for (;;)
  {
        
        buffer = SEEDDM642_UART_getChar(SEEDuartHandleA);
//		buffer  = 0x55;
        SEEDDM642_UART_putChar(SEEDuartHandleA, (buffer & 0xff));  
    }
 /*        for (;;)
    {
        
        buffer = SEEDDM642_UART_getChar(SEEDuartHandleB);
//		buffer  = 0x55;
        SEEDDM642_UART_putChar(SEEDuartHandleB, (buffer & 0xff));
    }*/
}

     

⌨️ 快捷键说明

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