新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > UART---查詢方式(EasyARM2131)

        UART---查詢方式(EasyARM2131)

        作者: 時間:2016-11-10 來源:網絡 收藏
        /****************************************Copyright (c)********************

        **--------------File Info-------------------------------------------------
        ** File name:main.c
        ** Last modified Date: 2011-04-10
        ** Last Version:1.0
        ** Descriptions:The main() function example template
        **
        **-----------------------------------------------------------------------
        ** Created by:lxliu
        ** Created date:2011-04-10
        ** Version:1.0
        ** Descriptions:The original version
        **
        **-----------------------------------------------------------------------
        ** Modified by:
        ** Modified date:
        ** Version:
        ** Descriptions:
        ************************************************************************/
        #include "config.h"

        本文引用地址:http://www.104case.com/article/201611/317409.htm

        /***********************************************************************
        ** 函數名稱:DelayNS()
        ** 函數功能:長軟件延時
        ** 入口參數:dly延時控制值,值越大,延時越長
        ** 出口參數:無
        ***********************************************************************/

        void DelayNS(uint32 dly)
        {
        uint32 i;
        for(;dly>0;dly--)
        for(i=0;i<50000;i++);
        }

        #define UART_BPS 115200 //串口通信波特率
        /***********************************************************************
        ** 函數名稱:UART0_Init()
        ** 函數功能:串口初始化,設置為8位數據位,1位停止位,
        ** 無奇偶校驗,波特率為115200
        ** 入口參數:無
        ** 出口參數:無
        ***********************************************************************/
        void UART0_Init()
        {
        uint16 Fdiv;

        U0LCR = 0x83;
        Fdiv = (Fpclk/16)/UART_BPS;
        U0DLM = Fdiv/256;
        U0DLL = Fdiv%256;
        U0LCR = 0x03;
        }


        /***********************************************************************
        ** 函數名稱:UART0_GetByte()
        ** 函數功能:從串口接收一個字節數據,使用查詢方式接收
        ** 入口參數:無
        ** 出口參數:接收到的數據
        ***********************************************************************/

        uint8 UART0_GetByte()
        {
        uint8 rcv_dat;

        while((U0LSR & 0x01) == 0);
        rcv_dat = U0RBR;

        return(rcv_dat);
        }

        /***********************************************************************
        ** 函數名稱:UART0_GetStr()
        ** 函數功能:串口接收
        ** 入口參數:s 指向接收數據數組的指針
        ** n 接收的個數
        ** 出口參數:無
        ***********************************************************************/
        void UART0_GetStr(uint8 *s, uint32 n)
        {
        for (;n>0;n--)
        {
        *s++ = UART0_GetByte();
        }

        }

        /***********************************************************************
        ** 函數名稱:UART0_SendByte()
        ** 函數功能:向串口發送字節數據,并等待發送完畢,使用查詢方式
        ** 入口參數:dat 要發送的數據
        ** 出口參數:無
        ***********************************************************************/
        void UART0_SendByte(uint8 dat)
        {
        U0THR = dat;
        while((U0LSR & 0x40) == 0);

        }

        /***********************************************************************
        ** 函數名稱:UART0_SendStr()
        ** 函數功能:向串口發送一字符串
        ** 入口參數:str 要發送的字符串的指針
        ** 出口參數:無
        ***********************************************************************/
        void UART0_SendStr(uint8 const *str)
        {
        while(1)
        {
        if(*str ==

        主站蜘蛛池模板: 应用必备| 韶关市| 泸定县| 嘉义市| 桂平市| 姜堰市| 蓝田县| 周宁县| 全州县| 普格县| 卢龙县| 三河市| 莱阳市| 古蔺县| 绥宁县| 怀集县| 浦城县| 姜堰市| 河北省| 正定县| 塔城市| 布尔津县| 新竹市| 通江县| 金溪县| 南投市| 辰溪县| 石家庄市| 丽江市| 新建县| 巴楚县| 宁海县| 扶风县| 垣曲县| 阳江市| 民勤县| 东丰县| 寻乌县| 渝北区| 全州县| 安多县|