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

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

?? autouart.c

?? 用MSP430(C)寫的紅外抄表程序,是初學者好代碼
?? C
字號:
#include <msp430x14x.h>

//定義串口操作變量
// 串口 1 的接收標志
char nRev_UART1;			
// 串口 1 的發送緩沖區
char UART1_TX_BUF[60];	
// 串口 1 的接收緩沖區	
char UART1_RX_BUF[60];		
int nTX1_Len;
char nRX1_Len;
char nRX1_Len_temp;
char nTX1_Flag;
char nTime_Flag;
int nSend_TX1;
char GetChar(void);

typedef enum  
{ BAUD115200, BAUD57600,BAUD38400, BAUD19200,
  BAUD14400,  BAUD9600, BAUD4800,  BAUD2400, 
  BAUD1200       
} baudrates;

typedef struct {
  char ubr00;
  char ubr01;
  char umctl0;
  char *desc;
} baudreg;

// 串口寄存器的值 (UBR0_1, UBR1_1, UMCTL_1, Descr)
const baudreg baudregs[] =
{
    0x45, 0x00, 0x00, "115200",    // BAUD115K
    0x8b, 0x00, 0x00, "57600",     // BAUD57600
    0xd0, 0x00, 0x00, "38400",     // BAUD38400
    0xa0, 0x01, 0x00, "19200",     // BAUD19200
    0x2c, 0x02, 0x00, "14400",     // BAUD14400
    0x41, 0x03, 0x00, "9600",      // BAUD9600
    0x83, 0x06, 0x00, "4800",      // BAUD4800
    0x05, 0x0d, 0x00, "2400",      // BAUD2400
    0x0b, 0x1a, 0x00, "1200"       // BAUD1200
};

void SetBaud(int baud);
void Delay_8_33ms(void);
void Init_UART1(void);
void Init_CLK(void);
void Init_TimerA(void);

void Init_UART1(void)
{
	//將寄存器的內容清零
    U1CTL = 0X00;	
	//數據位為8bit
    U1CTL += CHAR;			
    
	//將寄存器的內容清零
    U1TCTL = 0X00;	
	//波特率發生器選擇SMCLK
    U1TCTL += SSEL1;			    
	//波特率為115200
    UBR0_1 = 0X45;			
    UBR1_1 = 0X00;
	//調整寄存器
    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_TimerA(void)
{
	// 選擇SMCLK,清除TAR
    TACTL = TASSEL1 + TACLR;  
	// 1/8 SMCLK
    TACTL += ID1;
    TACTL += ID0; 
	// CCR0 中斷允許
    CCTL0 = CCIE;
	// 時間間隔為 33.8ms
    CCR0 = 33800;
	// 增記數模式
    TACTL |= MC0;			    
}
void Init_CLK(void)
{
    unsigned int 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;			//將寄存器的內容清零
    BCSCTL2 += SELM1;		//MCLK的時鐘源為TX2CLK,分頻因子為1
    BCSCTL2 += SELS;		//SMCLK的時鐘源為TX2CLK,分頻因子為1
}
///////////////////////////////////////
// 處理來自串口 1 的接收中斷
interrupt [UART1RX_VECTOR] void UART1_RX_ISR(void)
{
    //接收來自的數據 
    UART1_RX_BUF[nRX1_Len_temp] = RXBUF1;	
    nRX1_Len_temp += 1;        
    if(UART1_RX_BUF[nRX1_Len_temp - 1] == 13)
    {
    	nRX1_Len = nRX1_Len_temp;
    	nRev_UART1 = 1;
    	nRX1_Len_temp = 0;
    }
}
///////////////////////////////////////
// 處理來自串口 1 的發送中斷
interrupt [UART1TX_VECTOR] void UART1_TX_ISR(void)
{
    if(nTX1_Len != 0)
    {
		// 表示緩沖區里的數據沒有發送完
    	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;
    	}
    }
}
// 定時器中斷
interrupt [TIMERA0_VECTOR] void TimerA_ISR(void)
{
    nTime_Flag = 1;
	// CCR0 不中斷允許
    CCTL0 &= ~CCIE;
}
void SetBaud(int baud)
{
	//停止UART
	U1CTL |= SWRST;
	//禁止中斷
	ME2 &= ~(UTXE0 + URXE0); 

	//設置寄存器
	UBR0_1 = baudregs[baud].ubr00;
	UBR1_1 = baudregs[baud].ubr01;
	UMCTL_1 = baudregs[baud].umctl0;
	//使能中斷
	ME2 |= UTXE0 + URXE0;
	//UART模塊允許
	U1CTL &= ~SWRST;
}
int AutoBaud(void)
{
	baudrates rate;

	//UART復位
	U1CTL |= SWRST;
	//接收出錯中斷允許位
	URCTL1 = URXEIE; 
	//UART模塊允許
	U1CTL &= ~SWRST; 
	//設置速率位115200
	SetBaud(BAUD115200);
	//接收字符
	switch (GetChar()) 
	{
	case 0x0d :
		rate = BAUD115200;
		break;
	case 0xe6 :
		rate = BAUD57600;
		break;
	case 0x1c :
		rate = BAUD38400;
		break;
	case 0xe0 :
		rate = BAUD19200;
		break;
	case 0x80 :
		rate = BAUD14400;
		break;
	case 0x00 :
	{
		// CCR0 中斷允許
        CCTL0 = CCIE;
		//延時33.8ms
		while(1)
		{
			if(nTime_Flag == 1)
			{
				nTime_Flag = 0;
				break;
			}
		}
		//設置速率位9600
		SetBaud(BAUD9600);
		//接收字符
		switch (GetChar())  
		{
		case 0x0d : 
			rate = BAUD9600;
			break;
		case 0xe6 :
			rate = BAUD4800;
			break;
		case 0x78 :
			rate = BAUD2400;
			break;
		case 0x80 :
			rate = BAUD1200;
			break;
		default :
			return -1;
		}
		break;
	}
	default :
		return -1;
	}

	// CCR0 中斷允許
    CCTL0 = CCIE;
	//延時33.8ms
	while(1)
	{
		if(nTime_Flag == 1)
		{
			nTime_Flag = 0;
			break;
		}
	}
	SetBaud(rate);
	return 0;
}
char GetChar(void)
{
  while (!(IFG2 & URXIFG1));
  return RXBUF1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区在线视频| 日本不卡中文字幕| 久久人人97超碰com| 欧美日韩高清一区二区不卡| 在线看日本不卡| 欧美天天综合网| 欧美三级三级三级| 欧美日本一区二区| 日韩欧美一区二区久久婷婷| 欧美不卡123| 国产三级精品三级在线专区| 欧美极品aⅴ影院| 亚洲欧美一区二区三区极速播放| 亚洲情趣在线观看| 日日摸夜夜添夜夜添精品视频| 日韩av中文字幕一区二区| 日本不卡在线视频| 高清在线成人网| 在线精品视频一区二区| 4438x成人网最大色成网站| 精品少妇一区二区三区免费观看| 国产亚洲欧美日韩俺去了| 成人精品视频一区二区三区| 91麻豆123| 日韩欧美亚洲另类制服综合在线| 久久久99精品免费观看不卡| 亚洲欧美乱综合| 久久草av在线| 91在线小视频| 欧美电影免费观看高清完整版| 欧美激情在线一区二区三区| 亚洲成人精品一区二区| 精品一区二区精品| 91同城在线观看| 欧美大片在线观看| 亚洲精品乱码久久久久久日本蜜臀| 亚洲欧美成aⅴ人在线观看 | 国产高清亚洲一区| 99久久久久免费精品国产| 欧美午夜免费电影| 国产色婷婷亚洲99精品小说| 亚洲一区二区三区免费视频| 国产一区二区精品在线观看| 色婷婷精品久久二区二区蜜臂av | 国产成人丝袜美腿| 欧美日韩一区二区三区四区五区| 精品国产自在久精品国产| 亚洲精品久久久久久国产精华液| 国内不卡的二区三区中文字幕| 色综合天天做天天爱| 欧美xxxxxxxxx| 午夜私人影院久久久久| av在线播放成人| 久久久99精品免费观看不卡| 婷婷一区二区三区| 欧美色偷偷大香| 中文字幕色av一区二区三区| 国产最新精品精品你懂的| 4438成人网| 日韩有码一区二区三区| 在线看一区二区| 国产精品久久网站| 国产不卡在线视频| 精品国产a毛片| 麻豆91在线播放免费| 欧美综合在线视频| 亚洲乱码国产乱码精品精小说| 成人午夜电影网站| 国产精品美女一区二区| 国产精品白丝jk黑袜喷水| 久久婷婷国产综合精品青草| 老司机精品视频导航| 69av一区二区三区| 日本不卡视频在线| 日韩欧美的一区二区| 久久99精品国产.久久久久久 | 国产一区二区不卡| 亚洲精品一区二区三区影院 | 国产精品国产三级国产专播品爱网| 久热成人在线视频| 精品欧美黑人一区二区三区| 国产在线精品视频| 国产精品三级av| av福利精品导航| 亚洲综合男人的天堂| 欧美天堂一区二区三区| 亚洲aaa精品| 精品久久久久久久久久久院品网 | 欧美激情中文字幕| 不卡的av网站| 综合自拍亚洲综合图不卡区| 色偷偷成人一区二区三区91| 亚洲一区二区三区视频在线播放 | 国产亚洲精品aa| www.99精品| 亚洲国产欧美在线| 日韩精品一区二| 99久久伊人久久99| 五月激情六月综合| 久久免费国产精品| 91性感美女视频| 日本伊人精品一区二区三区观看方式| 欧美成人精品福利| 91社区在线播放| 免费三级欧美电影| 国产精品不卡在线观看| 欧美性一级生活| 国产美女av一区二区三区| 成人欧美一区二区三区白人| 欧美日韩成人在线| 成人免费av网站| 五月天视频一区| 中文子幕无线码一区tr| 欧美老肥妇做.爰bbww视频| 国产在线视频一区二区| 一区二区在线免费观看| 26uuu久久天堂性欧美| 一本久久精品一区二区| 韩国v欧美v亚洲v日本v| 亚洲高清久久久| 国产精品精品国产色婷婷| 欧美va亚洲va在线观看蝴蝶网| 94-欧美-setu| 国产精品香蕉一区二区三区| 香蕉成人啪国产精品视频综合网 | 91论坛在线播放| 国产一区二区视频在线播放| 午夜精品久久久久久久久久| 亚洲欧洲成人av每日更新| 日韩欧美中文一区二区| 欧美色网一区二区| 成人精品国产免费网站| 狠狠久久亚洲欧美| 丝袜美腿亚洲色图| 亚洲午夜在线电影| 一区二区三区精品久久久| 久久奇米777| 亚洲精品一区二区三区福利| 日韩一级免费一区| 欧美中文字幕亚洲一区二区va在线 | 亚洲韩国一区二区三区| 中文字幕中文在线不卡住| 久久影院视频免费| 日韩欧美国产不卡| 日韩精品一区二区三区视频播放| 欧美性色黄大片| 在线免费av一区| 在线中文字幕一区| 色呦呦国产精品| 91豆麻精品91久久久久久| 97se亚洲国产综合自在线观| 99精品在线观看视频| 成人激情视频网站| 色综合 综合色| 欧美主播一区二区三区美女| 欧美三级视频在线观看| 欧美另类videos死尸| 欧美精品日韩精品| 日韩午夜在线播放| 精品国一区二区三区| 久久久久久综合| 国产日韩欧美综合在线| 国产精品乱子久久久久| 最新不卡av在线| 亚洲bdsm女犯bdsm网站| 美女视频网站黄色亚洲| 国产精品一品视频| 99精品国产视频| 欧美日韩一卡二卡| 欧美tk丨vk视频| 国产精品久久久久三级| 亚洲一区二区三区四区的| 奇米综合一区二区三区精品视频| 精品一区二区影视| 99国产精品久久久久久久久久久| 91成人在线精品| 精品国产一二三| 国产精品久久久99| 亚洲成a人v欧美综合天堂下载| 另类小说综合欧美亚洲| 成人福利视频在线看| 色婷婷久久综合| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产成人综合在线播放| 91搞黄在线观看| 337p日本欧洲亚洲大胆精品| 亚洲欧美偷拍卡通变态| 日韩 欧美一区二区三区| 国产成人在线免费观看| 欧美日韩在线直播| 久久人人爽人人爽| 亚洲成人精品在线观看| 国产高清亚洲一区| 欧美日韩国产三级| 国产精品三级视频| 精品一区二区三区av| 在线观看日韩高清av| 国产三级一区二区| 免费观看一级特黄欧美大片| 色综合一区二区三区|