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

📄 main.c

📁 致远的MagicARM2410上的关于ARM的所有实验代码
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzhou ZHIYUAN electronics Co.,LTD.
**                                     
**                                 http://www.zyinside.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name: main.c
** Last modified Date: 2006-01-14
** Last Version: v1.0 
** Description: 不断地接收RS485总线上的字符,接着再直接发送出去。  
** Note: 请将实验箱上的JP2跳线短接"485R"端,可以通过使用485-232转换器与PC机串口连接,
**       实现数据发收。串口设置:波持率为9600,8位数据位,1位停止位,无奇偶校验位。
**------------------------------------------------------------------------------------------------------
** Created By: 黄绍斌
** Created date: 2006-01-14
** Version: v1.0 
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Description:
**
********************************************************************************************************/
#include  "config.h"

// 定义RS485发送/接收控制口。为高电平时使能发送。
#define  RS485_CONS     (1<<13)         /* GPE13 */
#define  RS485_CONC     (~(1<<13))      /* GPE13 */ 

// 使能RS485数据发送
#define  RS485_SEND()   rGPEDAT = rGPEDAT | RS485_CONS  
 
// 使能RS485数据接收
#define  RS485_RCV()    rGPEDAT = rGPEDAT & RS485_CONC 


/*********************************************************************************************************
** Function name: DelayNS
** Descriptions: 长软件延时。
**              延时时间与系统时钟有关。
** Input: dly	延时参数,值越大,延时越久
** Output: 无
** Created by: 黄绍斌
** Created Date: 2005-12-31 
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void  DelayNS(uint32  dly)
{  
	uint32  i;

   	for(; dly>0; dly--) 
       for(i=0; i<50000; i++);
}


// RS485接收字符临时变量
uint8 g_getch;

/*********************************************************************************************************
** Function name: main
** Descriptions: 不断地接收RS485总线上的字符,接着再直接发送出去。        
** Input: 无
** Output: 系统返回值0
** Created by: 黄绍斌
** Created Date: 2005-12-31 
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
int  main(void)
{	
    uint32  i;
    
    // I/O口初始化
    rGPECON = (rGPECON & (~(0x03<<26))) | (0x01<<26);
    rGPEUP  = rGPEUP | (0x01<<13);    
    RS485_RCV();        // 设置RS485数据接收

    UART_Select(1);     // 选择串口1,做RS485通讯
    UART_Init();        // 初始化串口
    
    while(1)    
	{
	    RS485_RCV();                // 设置RS485数据接收 
        g_getch = UART_GetKey();    // 接收字符
        for(i=0; i<10000; i++);
        
        RS485_SEND();               // 设置RS485数据发送
        if(g_getch == 0x0D)         // 判断是否为回车键
        {
            UART_SendByte('\r');    // 发送换行符
            for(i=0; i<10000; i++); 
            UART_SendByte('\n');
        }
        else
        {
            UART_SendByte(g_getch); // 发送接收到的字符
        }
	    for(i=0; i<10000; i++);        
	}
	
   	return(0);
}

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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