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

📄 uart.c

📁 hreadx实时嵌入式操作系统源代码,ARM移植. threadx是一个很好的多任务实时嵌入式操作系统
💻 C
📖 第 1 页 / 共 2 页
字号:
        rGPHUP  |=   __COM1_GPIO;                                       /*  不使用上拉电阻              */
        
        rCLKCON |=   __COM1_CLKBIT;                                     /*  时钟挂接                    */
        
        rUCON1   = 0;
        rUFCON1  = uiUFCONn;
        rUMCON1  = 0;                                                   /*  关闭流控                    */
        rULCON1  = uiULCONn;
        rUCON1   = uiUCONn;
        rUBRDIV1 = uiUBRDIVn;
        
        if (uiInterEn) {                                                /*  链接中断服务函数            */
         HandleUART0 = (int)pvIsrRoutine;
   /*  changed by lixintian 2008.4.2    */
   //             vicIrqSet(VIC_CHANNEL_UART1, VIC_CHANNEL_UART1, 
   //                   (unsigned long)pvIsrRoutine);                     /*  允许中断                    */
            INTER_CLR_SUBMSK(BIT_SUB_RXD1);                             /*  打开接收中断                */
        }
    
    } else if (iCom == COM2) {                                          /*  设置 UART2 的 管脚          */
        
        rGPHCON &= ~(__COM2_MASK);
        rGPHCON |=   __COM2_GPHCON;
        rGPHUP  |=   __COM2_GPIO;                                       /*  不使用上拉电阻              */
        
        rCLKCON |=   __COM2_CLKBIT;                                     /*  时钟挂接                    */
        
        rUCON2   = 0;
        rUFCON2  = uiUFCONn;
        rUMCON2  = 0;                                                   /*  关闭流控                    */
        rULCON2  = uiULCONn;
        rUCON2   = uiUCONn;
        rUBRDIV2 = uiUBRDIVn;
		
        if (uiInterEn) {                                                /*  链接中断服务函数            */
         HandleUART0 = (int)pvIsrRoutine;
   /*  changed by lixintian 2008.4.2    */
   //             vicIrqSet(VIC_CHANNEL_UART2, VIC_CHANNEL_UART2, 
   //                   (unsigned long)pvIsrRoutine);                     /*  允许中断                    */
            INTER_CLR_SUBMSK(BIT_SUB_RXD2);                             /*  打开接收中断                */
        }
    
    } else {                                                            /*  串口出错                    */
        
        return  (-1);
    }
    
    return  (0);
}
/*********************************************************************************************************
** Function name:           uartSendByte
** Descriptions:            UART 发送一个字节的数据
** input parameters:        iCom                串口号
**                          ucData              数据
** output parameters:       NONE
** Returned value:          正确返回 0,  错误返回 -1
** Created by:              Hanhui
** Created Date:            2007/09/18
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
int     uartSendByte (int   iCom, unsigned char  ucData)
{
    switch (iCom) {
    
    case COM0:
        while (rUFSTAT0 & (1 << 14));                                   /*  Tx_FIFO NOT FULL            */
        WrUTXH0(ucData);
        break;
		
    case COM1:
        while (rUFSTAT1 & (1 << 14));                                   /*  Tx_FIFO NOT FULL            */
        WrUTXH1(ucData);
        break;
    
    case COM2:
        while (rUFSTAT2 & (1 << 14));                                   /*  Tx_FIFO NOT FULL            */
        WrUTXH2(ucData);
        break;
    
    default:                                                            /*  串口号错误                  */
        return  (1);
    }
    
    return  (0);
}
/*********************************************************************************************************
** Function name:           uartSendByteCnt
** Descriptions:            UART 发送指定长度的数据
** input parameters:        iCom                串口号
**                          pucData             数据缓冲区
** output parameters:       NONE
** Returned value:          NONE
** Created by:              Hanhui
** Created Date:            2007/09/18
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void    uartSendByteCnt (int             iCom, 
                         unsigned char  *pucData,
                         int             iCnt)
{
    for (; iCnt != 0; iCnt--) {
        uartSendByte(iCom, *pucData);                                   /*  发送数据                    */
        pucData++;
    }
}
/*********************************************************************************************************
** Function name:           uartSendString
** Descriptions:            UART 发送一个字符串
** input parameters:        iCom                串口号
**                          pcData              字符串
** output parameters:       NONE
** Returned value:          NONE
** Created by:              Hanhui
** Created Date:            2007/09/18
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void     uartSendString (int   iCom, char  *pcData)
{
    if (!pcData) {                                                      /*  指针为空                    */
        return;
    }
    
    while (*pcData != '\0') {                                           /*  发送字符串                  */
        uartSendByte(iCom, (unsigned char)*pcData);
        pcData++;
    }
}
/*********************************************************************************************************
  END FILE
*********************************************************************************************************/

⌨️ 快捷键说明

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