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

📄 uart2.c

📁 AT917S64,ARM处理器的程序。有中断
💻 C
字号:
//*----------------------------------------------------------------------------
//* 函数名: AT91F_DBGU_Init
//* 功能:初始化DBUG口,即可作为DBGU功能,又可作为普通USART口功能
//* Creation            : 张正锋   2005-12-30  
//*----------------------------------------------------------------------------
void AT91F_DBGU_Init(void)
{
      //* 配置I/O
       AT91F_DBGU_CfgPIO(); //调用库函数

      //* 复位发送功能,允许发送
       AT91F_US_ResetTx ((AT91PS_USART)AT91C_BASE_DBGU);//调用库函数
      //* 复位接收功能,允许接受
       AT91F_US_ResetRx ((AT91PS_USART)AT91C_BASE_DBGU);//调用库函数

      //* 配置 DBGU 打开PDC
       AT91F_US_Configure (                         // 调用库函数
        (AT91PS_USART) AT91C_BASE_DBGU,    // DBGU 基地址
        MCK,
        AT91C_US_ASYNC_MODE ,              // 模式积存器
        AT91C_DBGU_BAUD ,                  // 波特率
        0);                                // 触发时间

       //* 允许接受
       AT91F_US_EnableTx ((AT91PS_USART)AT91C_BASE_DBGU);

       //* 允许发送
       AT91F_US_EnableRx ((AT91PS_USART)AT91C_BASE_DBGU);

       //* 允许接受缓冲区
       AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC,
                               AT91C_ID_SYS,
                               DBGU_SYS_LEVEL,
                               AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE,
                               DBGU_irq_handler);
     ///////////////////////////////////////////////////////////////////////////////////////////
       //* 启动PDC接受
        AT91F_USRT_FrameReceive((AT91PS_USART)AT91C_BASE_DBGU,ReceiveBuffer,BufferLength);
       //* 允许接受缓冲区满中断
        AT91F_US_EnableIt((AT91PS_USART)AT91C_BASE_DBGU,AT91C_US_RXBUFF);
       //* 允许DBGU系统中断
       AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_SYS);
}

//*----------------------------------------------------------------------------
//*函数名:AT91F_US0_Init
//* 功能:初始化US0口
//* Creation            : 张正锋   2005-12-30  
//*----------------------------------------------------------------------------
void AT91F_US0_Init(void)
{
       //* 配置I/O
       AT91F_US0_CfgPIO ();  //调用库函数
      //开US1时钟
       AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1<<AT91C_ID_US0 );
       //* 复位发送功能,允许发送
       AT91F_US_ResetTx (AT91C_BASE_US0);//调用库函数
      //* 复位接收功能,允许接受
       AT91F_US_ResetRx (AT91C_BASE_US0);//调用库函数

      //* 配置US0
       AT91F_US_Configure (                        ///调用库函数
        AT91C_BASE_US0,                    // US0基地址
        MCK,
        AT91C_US_ASYNC_MODE ,              // 模式积存器
        AT91C_US0_BAUD,                    // 波特率
        0);

       //* 允许传输
       AT91F_US_EnableTx (AT91C_BASE_US0);

       //*允许接受
       AT91F_US_EnableRx (AT91C_BASE_US0);

       //* 允许接受缓冲区满中断
       AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC,
                               AT91C_ID_US0,
                               US0_SYS_LEVEL,
                               AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE,
                               US0_irq_handler);

        //开启US0的PDC,接受数据
        AT91F_USRT_FrameReceive(AT91C_BASE_US0,ReceiveBuffer,BufferLength);
        //*允许接受缓冲区满中断
        AT91F_US_EnableIt(AT91C_BASE_US0,AT91C_US_RXBUFF);
        //* 允许总中断
    AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_US0);
}

⌨️ 快捷键说明

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