亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? my_serial.c

?? ccs3.1 omap5910 platform
?? C
字號:
/******************************************************************************** 
* Copyright (C), 2000-2005, HYT Tech. Co., Ltd. 
*
*FileName:      my_serial.c 
*
*Author: Wang Zhaohui         Version :1.0            Date:05/09/12 
*
*Description: To test data transfer using UART.  
*  
*Version: no other discription
*
*Function List:         
*        UART1_Init
*        DataRx
*        DataTx
*        SerialTest
*History:                
*   <author>  <time>   <version >   <desc> 
*    WZH     05/08/24     1.0       build this moudle  
*    WZH     05/10/13     1.0       modified
********************************************************************************/

#include "type.h"
#include "serial.h"
#include "string.h"


INT32 UART1_Init(void)
{
    struct UART_struct *pUART1 = (struct UART_struct*)UART1_BASE_ADDR;

    /* The default TIPB configuration(RHSW_ARM_CNF) seems enough to operate normally.
       Default is enough for 60MHz MPU operation. 100MHz is now tested.  */

    /* PLS refer OMAP5910 technical reference B on page 12-51. */
    /* MCR[7:5], FCR[5:4], and IER[7:4] can only be written when EFR[4] = 1.
       Transmission control register (TCR) and trigger level register (TLR) 
       are accessible only when EFR[4] = 1 and MCR[6] = 1. */
    pUART1->LCR = 0xbf;           /* EFR register is accessible only when LCR = 0xbf */
    pUART1->IIR_FCR_EFR &= 0x3f;  /* Disable auto-RTS1 and auto-CTS1  */
    pUART1->IIR_FCR_EFR |= 0x10;  /* set EFR[4] to 1-->Enable write IER[7:4] and FCR[5:4] and MCR[7:5] */
    /* pUART1->IIR_FCR_EFR |= 1<<4|1<<6|1<<7; bit6 Enable auto-nRTS and bit7 enable auto-nCTS. */
    

    pUART1->LCR  = 0x80;          /* MCR[7:5] register is accessible when LCR[7] = 1 and LCR[7:0] ≠ 0xbf */
    pUART1->MCR |= 0x40;          /* MCR[6] = 1 enables access to the TCR and TLR registers */

    /*pUART1->IIR_FCR_EFR |= 1; */
    pUART1->SCR |= 0x40;          /* SCR[6] = 1 enables the granularity of 1 for trigger TX level */
    pUART1->SPR_TLR = 0x11;       /* Receive FIFO trigger level and Transmit FIFO trigger level are both 1. */
    pUART1->IIR_FCR_EFR &= 0x0f;  /* FCR[7:4] sets the trigger any value level for the RX FIFO and the TX FIFO .
                                     But not first set SCR[6] = 1, then set TLR and FCR, last set SCR[6] = 1? */

    pUART1->MSR_TCR = 0x0f;       /* The transmission control register is written. 100% empty and full.
                                     MSR is only read.  */
    /*pUART1->SPR_TLR = 0x22;      8 and 8. */
    /* pUART1->IIR_FCR_EFR = ...; */
    pUART1->LCR = 0xbf;           /* access EFR */
    pUART1->IIR_FCR_EFR &= 0xef;  /* EFR[4] = 0 */
    pUART1->LCR &= 0x7f;          /* access MCR */
    pUART1->MCR &= 0xbf;          /* Disables access to the TCR and TLR registers */

    pUART1->LCR = 0x03;           /* 8 bits; 1 stop bit; No parity; */
    /*pUART1->LCR = 0x03<<0|0x00<<1|0x00<<3;  8 bits; 1 stop bit; No parity; */
    pUART1->LCR |= 0x80;          /* LCR[7] = 1, access DLL register */
    /*pUART1->OSC_12M_SEL |= 1<<0;    115200bps */
    pUART1->RHR_THR_DLL = 0x4e;   /* baud clock divisor,Divisor value = Operating Frequency / (16 x Baud Rate) */
    pUART1->IER_DLH = 0;	      /* Set baud rate to 9600. */
    pUART1->LCR &= 0x7f;
    /* pUART1->IER_DLH |= 1<<0|1<<1;  Enable the RHR and THR interrupts. */

    pUART1->MDR1 = 0x00;          /* Enable UART1 without autobauding. */

    return 0;
}

char DataRx(void)
{
    char tmp;
    
	struct UART_struct *pUART1 = (struct UART_struct*)UART1_BASE_ADDR; 
	
	while(!(pUART1->LSR & 0x01))
	{
	    //wait until At least one data character in the RX_FIFO
	}
	
	tmp = pUART1->RHR_THR_DLL;
	
	return tmp;
}

void DataTx(int data)
{
    struct UART_struct *pUART1 = (struct UART_struct*)UART1_BASE_ADDR;
    
    if('\n' == data)
    {
        while(!(pUART1->LSR & (0x1 << 5)))
        {
            //Wait until Transmit hold register is empty.
        }
        
        Delay(6000);   //because the response of terminal is not on time 
        pUART1->RHR_THR_DLL = ' ';
        pUART1->RHR_THR_DLL = 'T'; 
        pUART1->RHR_THR_DLL = 'h'; 
        pUART1->RHR_THR_DLL = 'e';  
        pUART1->RHR_THR_DLL = ' ';    
        pUART1->RHR_THR_DLL = 'e'; 
        pUART1->RHR_THR_DLL = 'n'; 
        pUART1->RHR_THR_DLL = 'd'; 
        pUART1->RHR_THR_DLL = '!';                             
    }
    else
    {
        while(!(pUART1->LSR & (0x1 << 5)))
        {
            //Wait until Transmit hold register is empty.
        }
        
        Delay(6000);
        pUART1->RHR_THR_DLL = data; 
    }
}

void SerialTest(void)
{
    int data = 0;
    struct UART_struct *pUART1 = (struct UART_struct*)UART1_BASE_ADDR;
    
    printf("\n---Please open the serial debug tool and configue it as below:\n");
    printf("Serial port:COM1\nBaud rate:9600\nNo parity\nDatalength:8\n1 stop bit\n");

    UART1_Init();
    pUART1->LCR &= ~(1<<7);	// Enable the RHR and THR 最高位置0
    
    while(!(pUART1->LSR &= 0x1))
	{
    //wait if No data in the receive FIFO 此處改為對LSR最后一位進行判斷,消除了bug!!!
	}
    
    do
    {
        data = DataRx();
        printf("The ASCII value of the data received from serial debug is: %d\n", data);
        Delay(6000);
        
        DataTx(data);
    }
    while(1);    //while(data != '\n');
   
}





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美综合在线观看第十页| 国产成人av一区二区三区在线| 久久精品视频一区二区| 欧美性色黄大片| 欧美主播一区二区三区| 色老汉一区二区三区| 欧美中文字幕一区| 欧美日韩国产欧美日美国产精品| 欧美亚洲愉拍一区二区| 欧美亚洲国产一区在线观看网站| 色综合一区二区三区| 色婷婷精品大在线视频 | 亚洲国产日韩综合久久精品| 欧美激情中文字幕一区二区| 国产精品午夜免费| 亚洲人成精品久久久久久| 亚洲精品一二三| 亚洲综合一二三区| 亚瑟在线精品视频| 日韩av在线播放中文字幕| 日欧美一区二区| 暴力调教一区二区三区| 国产成人综合网站| 91麻豆国产精品久久| 欧美人动与zoxxxx乱| 精品美女一区二区三区| 国产视频一区二区在线| 亚洲图片欧美激情| 日韩av中文字幕一区二区三区 | 精品久久久久久久久久久久包黑料 | 亚洲视频一区在线观看| 亚洲一区二区欧美日韩| 韩国在线一区二区| 91年精品国产| 精品国产在天天线2019| 中文字幕中文字幕一区二区| 亚洲不卡一区二区三区| 国产精品一卡二| 欧美日韩色一区| 中文字幕av一区二区三区免费看| 亚洲一线二线三线久久久| 狠狠色丁香婷综合久久| 欧洲一区二区三区在线| 欧美刺激午夜性久久久久久久| 亚洲国产精品ⅴa在线观看| 亚洲国产日韩一区二区| 99在线热播精品免费| 日韩欧美国产三级电影视频| 国产精品激情偷乱一区二区∴| 日韩国产欧美三级| 一本大道久久a久久综合婷婷 | 久久99精品久久只有精品| 972aa.com艺术欧美| 欧美成人综合网站| 亚洲二区在线视频| 色婷婷av一区二区三区大白胸| 精品91自产拍在线观看一区| 亚洲国产sm捆绑调教视频| 国产成人8x视频一区二区| 欧美一级久久久| 亚洲成av人**亚洲成av**| 99久久综合狠狠综合久久| 国产色爱av资源综合区| 经典三级视频一区| 国产亚洲综合性久久久影院| 亚洲国产cao| 欧美性三三影院| 一区二区免费看| 色婷婷综合久色| 中文字幕在线不卡一区二区三区| 国产一区三区三区| 精品国产123| 九九精品视频在线看| 日韩一区二区三区av| 日韩福利电影在线观看| 欧美色精品天天在线观看视频| 自拍偷拍国产精品| 91一区在线观看| 亚洲少妇30p| 91久久一区二区| 亚洲一级不卡视频| 欧美日韩高清一区二区不卡| 亚洲不卡av一区二区三区| 欧美日韩中文字幕一区| 日韩精品一级中文字幕精品视频免费观看| 91在线观看下载| 亚洲精品视频一区二区| 欧洲生活片亚洲生活在线观看| 中文字幕一区在线| 欧美亚洲禁片免费| 欧美aaa在线| 久久亚洲欧美国产精品乐播| 国产精品一区在线| 综合自拍亚洲综合图不卡区| 日本二三区不卡| 青青草国产成人av片免费| 日韩欧美在线影院| 国产成人精品免费网站| 国产精品不卡一区二区三区| 在线精品视频一区二区三四| 亚洲高清免费观看| 精品美女被调教视频大全网站| 国产精品一线二线三线| 一区二区三区四区高清精品免费观看| 欧美综合久久久| 国产一区欧美一区| 亚洲综合一二区| 久久精品水蜜桃av综合天堂| 91在线视频网址| 美女脱光内衣内裤视频久久网站| 久久久久国产一区二区三区四区| 波多野结衣亚洲| 日韩高清不卡一区二区| 国产精品欧美极品| 91精品国产aⅴ一区二区| 成人性生交大片免费| 日韩精品三区四区| 日本一区二区三区dvd视频在线 | 欧美一二三在线| www.亚洲色图| 九色|91porny| 亚洲影视在线播放| 国产精品理论片在线观看| 欧美一卡二卡三卡四卡| 91麻豆免费看片| 国产成人亚洲综合a∨猫咪| 日韩中文字幕不卡| 亚洲免费观看高清在线观看| 精品国产1区二区| 日韩一区二区免费高清| 欧美视频一区二区三区四区| 懂色av一区二区在线播放| 国产一区不卡精品| 天堂av在线一区| 亚洲精品中文在线| 日韩美女啊v在线免费观看| 26uuu色噜噜精品一区| 这里只有精品电影| 欧美视频自拍偷拍| 91精品办公室少妇高潮对白| 成人av午夜电影| 国产一区二区精品久久91| 蜜臀精品久久久久久蜜臀| 一区二区三区日韩精品| 国产精品久久久久三级| 久久久九九九九| 国产午夜精品理论片a级大结局| 欧美一区二区三级| 91精品国产综合久久久久久久| 色婷婷久久久综合中文字幕| 99re热视频这里只精品| 波多野结衣精品在线| 成人性视频免费网站| 成人高清视频免费观看| 成人综合在线网站| 成人av小说网| 91免费视频大全| 在线中文字幕一区| 欧美日韩一区二区三区高清| 欧美视频日韩视频| 欧美精品自拍偷拍| 欧美大白屁股肥臀xxxxxx| 精品欧美久久久| 国产婷婷色一区二区三区四区| 国产精品丝袜一区| 综合久久给合久久狠狠狠97色| 亚洲人成精品久久久久| 伊人开心综合网| 日韩国产在线观看| 精品中文字幕一区二区| 国产成人av福利| 色呦呦日韩精品| 欧美精品欧美精品系列| 精品奇米国产一区二区三区| 国产欧美一区二区三区在线看蜜臀| 国产欧美日产一区| 一区二区成人在线视频| 日本欧美一区二区在线观看| 久久不见久久见免费视频1| 福利视频网站一区二区三区| 91啦中文在线观看| 日韩一区二区三区观看| 国产免费观看久久| 婷婷久久综合九色综合伊人色| 麻豆成人在线观看| 成人国产一区二区三区精品| 欧美亚洲动漫另类| 久久亚洲精品国产精品紫薇| 亚洲日穴在线视频| 麻豆视频一区二区| 91亚洲精品一区二区乱码| 91麻豆精品国产91久久久久久久久| 精品国产成人在线影院| 亚洲免费观看视频| 韩国成人在线视频| 欧美亚洲综合在线| 中文字幕免费观看一区| 日韩国产一区二| 日本电影欧美片| 国产精品水嫩水嫩|