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

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

?? uart.c

?? 串口通訊實現(xiàn)發(fā)送的程序 MSP430單片機C語言 AIR
?? C
字號:
#include <msp430x14x.h>
#include "uart.h"
///////////////////////////////////////////////
//		說明
//串口接收數(shù)據(jù),判斷,返回的一個程序
//波特率57600
//工具串口調(diào)試助手
//發(fā)送:AT(CR)
//返回:OK
//發(fā)送:ATE0(CR)
//返回:OK
//發(fā)送:ATE1XXXXXXX(CR)
//返回:XXXXXXXXOK
//發(fā)送其他內(nèi)容,返回ERROR
///////////////////////////////////////////////
//定義串口操作變量
// 串口 1 的接收標志
char nRev_UART1;			
// 串口 1 的發(fā)送緩沖區(qū)
char UART1_TX_BUF[60];	
// 串口 1 的接收緩沖區(qū)	
char UART1_RX_BUF[60];	
int nSend_TX1;
int nTX1_Len;
char nRX1_Len;
char nRX1_Len_temp;
char nTX1_Flag;
int nRes_UART1;

void Init_UART1(void)
{
    //將寄存器的內(nèi)容清零
    U1CTL = 0X00;	
    //數(shù)據(jù)位為8bit
    U1CTL += CHAR;			
    
    //將寄存器的內(nèi)容清零
    U1TCTL = 0X00;	
    //波特率發(fā)生器選擇SMCLK
    U1TCTL += SSEL1;			
    
    //波特率為57600
    UBR0_1 = 0X8B;			
    UBR1_1 = 0X00;
    //調(diào)整寄存器
    UMCTL_1 = 0X00;			

    //使能UART1的TXD和RXD
    ME2 |= UTXE1 + URXE1; 
    //使能UART1的RX中斷
    IE2 |= URXIE1;	
    //使能UART1的TX中斷
    IE2 |= UTXIE1;			
    
    //設置P3.6為UART1的TXD
    P3SEL |= BIT6;	
    //設置P3.7為UART1的RXD
    P3SEL |= BIT7;			
    
    //P3.6為輸出管腳
    P3DIR |= BIT6;			
    return;
}
void Init_Port(void)
{
    //將所有的管腳在初始化的時候設置為輸入方式
    P3DIR = 0;

    //將所有的管腳設置為一般I/O口
    P3SEL = 0;
    return;
}
void Init_CLK(void)
{
    unsigned int i;
    //將寄存器的內(nèi)容清零
    //XT2震蕩器開啟
    //LFTX1工作在低頻模式
    //ACLK的分頻因子為1
    BCSCTL1 = 0X00;	
					
    do 
    {
	IFG1 &= ~OFIFG;                       // 清除OSCFault標志
	for (i = 0x20; i > 0; i--);                
    }
    while ((IFG1 & OFIFG) == OFIFG);      // 如果OSCFault =1   
					
    BCSCTL2 = 0X00;			//將寄存器的內(nèi)容清零
    BCSCTL2 += SELM1;		//MCLK的時鐘源為TX2CLK,分頻因子為1
    BCSCTL2 += SELS;		//SMCLK的時鐘源為TX2CLK,分頻因子為1
}
///////////////////////////////////////
// 處理來自串口 1 的接收中斷
#if __VER__ < 200
    interrupt [UART1RX_VECTOR] void UART1_RX_ISR(void)
#else
    #pragma vector=UART1RX_VECTOR
    __interrupt void UART1_RX_ISR(void)
#endif
{
    //接收來自的數(shù)據(jù)
    UART1_RX_BUF[nRX1_Len_temp] = RXBUF1;	
    
    nRX1_Len_temp += 1;
        
    if(UART1_RX_BUF[nRX1_Len_temp - 1] == 10)  ////因為用的串口調(diào)試助手的回車是0D0A所以以OA來標志接收結(jié)束
    {
    	nRX1_Len = nRX1_Len_temp;
    	nRev_UART1 = 1;
    	nRX1_Len_temp = 0;
    }
}
///////////////////////////////////////
// 處理來自串口 1 的發(fā)送中斷
#if __VER__ < 200
    interrupt [UART1TX_VECTOR] void UART1_TX_ISR(void)
#else
    #pragma vector=UART1TX_VECTOR
    __interrupt void UART1_TX_ISR(void)
#endif
{
    if(nTX1_Len != 0)
    {
        // 表示緩沖區(qū)里的數(shù)據(jù)沒有發(fā)送完
    	nTX1_Flag = 0;			
    	
    	TXBUF1 = UART1_TX_BUF[nSend_TX1];
    	nSend_TX1 += 1;
    	
    	if(nSend_TX1 >= nTX1_Len)
    	{
    	    nSend_TX1 = 0;
    	    nTX1_Len = 0;
    	    nTX1_Flag = 1;
    	}
    }
}
void mainofuart(void)
{
    int i;    
    int nRes = 0;
    char UART1_RX_Temp[60];

    // 關閉看門狗
    WDTCTL = WDTPW + WDTHOLD;   
    
    nRev_UART1 = 0;
    nSend_TX1 = 0;
    // 關閉中斷
    _DINT();
	
    // 初始化時鐘
    Init_CLK();
    // 初始化端口
    Init_Port();
	// 初始化串口1
    Init_UART1();

    // 打開中斷
    _EINT();
 	
    // 進入處理循環(huán)
    for(;;)
    {
    	if(nRev_UART1 == 1)
    	{
    	    nRev_UART1 = 0;
	    // 將接收到的數(shù)據(jù)拷貝到臨時緩沖區(qū)
	    for(i = 0;i < nRX1_Len;i++) 
            {
		UART1_RX_Temp[i] = UART1_RX_BUF[i];
            }
	    nRes = ProcessCMD(UART1_RX_Temp,nRX1_Len);
	    switch(nRes)
	    {
                case 0:
                {
		    UART1_TX_BUF[0] = 'O';
    	    	    UART1_TX_BUF[1] = 'K';
    	    	    UART1_TX_BUF[2] = 13;     //因為用的串口調(diào)試助手的回車是0D0A所以再發(fā)個0D和上位機通信
    	    	    nTX1_Len = 3;
		    // 設置中斷標志,進入發(fā)送中斷程序
		    IFG2 |= UTXIFG1;		
    		    nRX1_Len = 0;
		    break;
                }
		case 1:
                {
		    UART1_TX_BUF[0] = 'O';
    	    	    UART1_TX_BUF[1] = 'K';
    	    	    UART1_TX_BUF[2] = 13;
    	    	    nTX1_Len = 3;
		    // 設置中斷標志,進入發(fā)送中斷程序
		    IFG2 |= UTXIFG1;		
    		    nRX1_Len = 0;
		    break;
                }
		case 2:
                {
		    for(i = 0;i < nRX1_Len;i++) 
                    {
			UART1_TX_BUF[i] = UART1_RX_Temp[i];
                    }
    	    	    UART1_TX_BUF[nRX1_Len] = 'O';
    	    	    UART1_TX_BUF[nRX1_Len+1] = 'K';
    	    	    UART1_TX_BUF[nRX1_Len+2] = 13;
    	    	    nTX1_Len = nRX1_Len + 3;
		    // 設置中斷標志,進入發(fā)送中斷程序
		    IFG2 |= UTXIFG1;		
    		    nRX1_Len = 0;
		    break;
                }
		case -1:
                {
		    UART1_TX_BUF[0] = 'E';
    	    	    UART1_TX_BUF[1] = 'R';
		    UART1_TX_BUF[2] = 'R';
    	    	    UART1_TX_BUF[3] = 'O';
		    UART1_TX_BUF[4] = 'R';
    	    	    UART1_TX_BUF[5] = 13;
    	    	    nTX1_Len = 6;
		    // 設置中斷標志,進入發(fā)送中斷程序
		    IFG2 |= UTXIFG1;		
    		    nRX1_Len = 0;
		    break;
                }
	    }//switch

	}//if(nRev_UART1 == 1)
    }//for(;;)
}
int ProcessCMD(char pBuf[],int nLen)
{
    int nTemp = -1;
    
    if(nLen == 3) 
    {
        if((pBuf[0] == 'A') && (pBuf[1] == 'T'))
        {
            nTemp = 0;
        }
    }
    
    if (nLen >= 4)
    {
	if((pBuf[0] == 'A') && (pBuf[1] == 'T') 
	    && (pBuf[2] == 'E') && (pBuf[3] == '0')) 
        {
	    nTemp = 1;
        }
	if((pBuf[0] == 'A') && (pBuf[1] == 'T') 
	    && (pBuf[2] == 'E') && (pBuf[3] == '1')) 
        {
	    nTemp = 2;
        }
    }
    
    return nTemp;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91看片淫黄大片一级在线观看| 国内欧美视频一区二区| 欧美午夜电影网| 国产一区二区三区久久久| 国产成人av一区二区三区在线观看| 国产91精品入口| aaa国产一区| 久久99国内精品| 亚洲mv大片欧洲mv大片精品| 国产精品久线在线观看| 国产一区在线不卡| 亚洲精品视频自拍| 国产日韩欧美精品在线| 久久蜜桃av一区二区天堂| 69久久99精品久久久久婷婷| 欧美三级午夜理伦三级中视频| 在线观看国产精品网站| 91丨porny丨蝌蚪视频| 国产精品99久久久久久有的能看| 麻豆91精品91久久久的内涵| 日韩国产精品91| 日本一区中文字幕| 亚洲国产一区二区三区| 一区二区三区四区高清精品免费观看 | 青青青伊人色综合久久| 日韩国产欧美在线播放| 日本午夜精品视频在线观看| 婷婷成人综合网| 强制捆绑调教一区二区| 国内精品嫩模私拍在线| 国产精品一线二线三线| 韩国av一区二区三区四区| 国产91丝袜在线18| gogo大胆日本视频一区| 91论坛在线播放| 欧日韩精品视频| 69精品人人人人| 久久亚洲精华国产精华液| 中文av一区二区| 国产精品久久久久9999吃药| 亚洲亚洲人成综合网络| 麻豆精品在线视频| 成人免费不卡视频| 欧美专区亚洲专区| 欧美日韩激情在线| 久久久久9999亚洲精品| 自拍偷在线精品自拍偷无码专区| 亚洲aaa精品| 国产在线精品免费av| 成人一级视频在线观看| 欧美揉bbbbb揉bbbbb| 欧美大片在线观看一区二区| 国产精品丝袜久久久久久app| 亚洲另类中文字| 免费成人深夜小野草| 99精品1区2区| 欧美一级日韩免费不卡| 国产精品福利一区| 天堂午夜影视日韩欧美一区二区| 国产麻豆精品一区二区| 欧美色窝79yyyycom| 日韩欧美的一区二区| 亚洲欧美色图小说| 日本美女一区二区| 成人黄色大片在线观看| 欧美一二三区在线观看| 国产精品久久久久久久第一福利| 毛片一区二区三区| 91亚洲精品久久久蜜桃网站| 欧美色手机在线观看| 中文在线一区二区| 日本欧美在线观看| 日本高清不卡在线观看| 精品国产乱码91久久久久久网站| 国产精品久久久久久久久久久免费看 | 亚洲大型综合色站| 免费成人av资源网| 欧美午夜免费电影| 国产女人18毛片水真多成人如厕 | 欧美一卡二卡三卡| 亚洲欧美影音先锋| 精品一二三四区| 6080yy午夜一二三区久久| 中文欧美字幕免费| 国产精品一二三四区| 7799精品视频| 亚洲国产高清在线| 国产精品996| 日韩欧美专区在线| 亚洲成人一二三| 94-欧美-setu| 欧美电影精品一区二区| 奇米色一区二区| 色婷婷综合五月| 欧美不卡一区二区| 午夜精品123| 国产 欧美在线| 国产精品福利一区二区三区| 精品一区二区日韩| 国产成人午夜精品影院观看视频| 精品国产一区二区三区久久影院 | 精品一区二区免费看| 91精品国产综合久久久蜜臀粉嫩| 日韩一区欧美一区| 91丨九色丨蝌蚪富婆spa| 国产亚洲精品bt天堂精选| 久久成人免费网| 精品欧美久久久| 日本人妖一区二区| 日韩一二三四区| 日av在线不卡| 91精品国产一区二区三区蜜臀 | 成人福利视频在线| 国产午夜精品一区二区三区视频| 国产成人在线观看免费网站| 久久一日本道色综合| 国产精品资源网站| 国产日韩欧美麻豆| 国产成人精品综合在线观看| 国产精品你懂的在线欣赏| 国产成人av电影在线播放| 国产精品色婷婷| 成人免费观看av| 国产精品视频看| 在线一区二区三区做爰视频网站| 国产精品久久久久久久岛一牛影视| 99久久国产免费看| 亚洲精品五月天| 69堂成人精品免费视频| 日本不卡视频一二三区| 欧美一区二区黄色| 国产精品影视天天线| 久久久久久久免费视频了| 成人午夜激情片| 亚洲老妇xxxxxx| 欧美日韩精品是欧美日韩精品| 亚洲成人先锋电影| 日韩欧美中文字幕公布| 日韩**一区毛片| 日韩精品影音先锋| 精品一区二区三区在线观看| 中文字幕免费一区| 91小视频免费看| 视频一区欧美精品| 日韩女优视频免费观看| 成人av动漫网站| 亚洲成人自拍偷拍| 欧美日本在线播放| 久久成人18免费观看| 国产偷v国产偷v亚洲高清| 欧美又粗又大又爽| 蜜桃精品视频在线| 中文字幕制服丝袜一区二区三区| 日本韩国欧美国产| 中文字幕一区二区三区蜜月 | 色综合久久综合中文综合网| 日本麻豆一区二区三区视频| 久久色视频免费观看| 大白屁股一区二区视频| 亚洲韩国一区二区三区| 5858s免费视频成人| 成人一区二区三区| 性做久久久久久久免费看| 亚洲国产精品t66y| 欧美日韩一二三区| 午夜电影网亚洲视频| 国产精品免费视频一区| 欧美日韩高清一区二区| 国产亚洲一区二区三区四区| 亚洲人一二三区| 欧美精品一二三| 国v精品久久久网| 亚洲妇女屁股眼交7| 国产精品久久久久aaaa樱花| 欧美日韩一区二区三区免费看| 日本欧美韩国一区三区| 亚洲免费毛片网站| 精品卡一卡二卡三卡四在线| 欧美视频一区在线| 国产精品自拍在线| 秋霞影院一区二区| 日本一区二区三区四区在线视频| 国产精品系列在线播放| 蜜臀av一级做a爰片久久| |精品福利一区二区三区| 久久综合狠狠综合久久激情 | 久久久一区二区| 欧美精品高清视频| 99久久综合国产精品| 国产高清不卡二三区| 日产国产欧美视频一区精品| 一区二区三区在线视频播放| 日本一区二区三区国色天香| 欧美日韩一区成人| 成人国产在线观看| 国产精品一区二区三区99| 精品一区二区三区久久| 无码av免费一区二区三区试看| 一个色综合av| 最新热久久免费视频|