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

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

?? uart.c

?? 簡單的在ATMEGA64上移植ucosII
?? C
字號:
/////////////////////////////////////
//070410
//在發(fā)送函數(shù)中加上超時處理
//防止發(fā)送失敗進入死循環(huán)
/////////////////////////////////////
#define _UART_C_

#define BAUD 	9600
#define CRYSTAL	11059200


#define BAUD_SETTING	(unsigned int)((unsigned long)CRYSTAL/(16*(unsigned long)BAUD)-1)
#define BAUD_H	(unsigned char)(BAUD_SETTING>>8)
#define BAUD_L	(unsigned char)(BAUD_SETTING)



#include <includes.h>

// 初始化串口
void uartInit(uint8 uartNum)
{
	OS_ENTER_CRITICAL();
	if(1==uartNum)
	{
		 UCSR1B = 0x00; //disable while setting baud rate
	 	 UCSR1A = 0x00;
	 	 UCSR1C = 0x06;
	 	 UBRR1L = BAUD_L; //set baud rate lo
	 	 UBRR1H = BAUD_H; //set baud rate hi
	 	 UCSR1B = 0x98;	  // 接收、發(fā)送使能,接收中斷使能
	 	 //共有3個中斷源, 接受, 發(fā)送, 寄存器空, 對應此寄存器的高3位
	 	 inRxd1Buf = Rxd1Buf;
	 	 outRxd1Buf = Rxd1Buf;
	}	
	else
	{
		UCSR0B = 0x00; //disable while setting baud rate
	 	UCSR0A = 0x00;
		UCSR0C = 0x06;	//set frame format, 8 bits, 2stop]
		UBRR0H = BAUD_H;
		UBRR0L = BAUD_L;
		UCSR0B = 0x98;	//0x18為允許接收和發(fā)關,0x98時全能接收中斷,允許接收.
		inRxd0Buf = Rxd0Buf;
		outRxd0Buf = Rxd0Buf;
	}
	OS_EXIT_CRITICAL();	
}

// 發(fā)送1個字節(jié)的數(shù)據(jù)
uint8 putChar(uint8 num, uint8 dat)
{
	if(1 == num)
	{
	 	while ( !( UCSR1A & (1<<UDRE1)) )
	 		;
		UDR1 = dat;
	}
	else if(0 == num)
	{
	 	while ( !( UCSR0A & (1<<UDRE0)) )
	 		;
		UDR0 = dat;
	}
	else
	{
		return 0;
	}
	return 1;
}



// 發(fā)送完整的字符串
uint8 putStr(uint8 num, uint8 *str, uint8 len)
{
	uint8 i = 0;
	//ENTER_CRITICAL();
	while((*str != NULL) && (len > 0))
	{
		if(0 ==  putChar(num, *str) )
		{
			return i;
		}
		i++;
		str++;
		len--;
	}
	return i;	
	//EXIT_CRITICAL();
}



//發(fā)送一個字節(jié)的hex碼,分成兩個字節(jié)發(fā)。
uint8 const hex_[] = {"0123456789ABCDEF"}; 
uint8 putCharHex(uint8 num, uint8 dat)
{
    uint8 ch;
	uint8 flag;
	ch = (dat >> 4) & 0x0F;
	flag = putChar(num, hex_[ch]);
	if (0 == flag)
	{ 
		return 0;
	}
	ch = dat & 0x0F;
	flag = putChar(num, hex_[ch]);
	if (0 == flag)
	{ 
		return 0;
	}
	return 1;
}



// 將字符串以HEX格式發(fā)送
uint8  putStrHex(uint8 num, uint8 *str, uint8 len)
{
	uint8 i = 0;
	while((*str != NULL) && (len > 0))
	{
		if (0 == putCharHex(num, *str))
		{
			return i;
		}
		str++;
		i++;
		len--;
	}
	return i;
}
	

// 從串口緩沖區(qū)中讀取1個字節(jié)的數(shù)據(jù)
int16 getChar(uint8 num)	
{
	uint8 temp=0;
	uint8 timeout = 10;
	if(1==num)
	{
		while(timeout)
		{
			if(Rxd1BufCnt != 0)
			{
				temp = *outRxd1Buf;
				if(outRxd1Buf == &Rxd1Buf[Rxd1BufLen - 1])
				{
					outRxd1Buf = Rxd1Buf;		// 地址到頂部后回到底部
				}
				else
				{
				    outRxd1Buf++;					// 輸出指針右移1位       
				}
				Rxd1BufCnt--;					// 緩沖區(qū)中數(shù)據(jù)個數(shù)減1
				return (temp);					// 讀到數(shù)據(jù),退出
			}
			else
			{
				timeout--;						// 緩沖區(qū)中沒有數(shù)據(jù),計時減1
				DelayMs();						// 緩沖區(qū)中沒有數(shù)據(jù),延時1ms
			}
		}
	}
	else if (0 == num)
	{	
		while(timeout)
		{
			if(Rxd0BufCnt != 0)
			{
				temp = *outRxd0Buf;
				if(outRxd0Buf == &Rxd0Buf[Rxd0BufLen - 1])
				{
					outRxd0Buf = Rxd0Buf;		// 地址到頂部后回到底部
				}
				else
				{
				    outRxd0Buf++;					// 輸出指針右移1位      
				}
				Rxd0BufCnt--;					// 緩沖區(qū)中數(shù)據(jù)個數(shù)減1
				return (temp);					// 讀到數(shù)據(jù),退出
			}
			else
			{
				timeout--;						// 緩沖區(qū)中沒有數(shù)據(jù),計時減1
				DelayMs();						// 緩沖區(qū)中沒有數(shù)據(jù),延時1ms
			}
		}
	}
	else
	{
		return (-1);
	}
	return (-1);
}	


// 從串口緩沖區(qū)中讀取n個字節(jié)的數(shù)據(jù)到dest中
uint8 getStrLong(uint8 num, uint8 len, uint8 *dest)
{
	uint8 i = 0;
	INT16S c = 0;
	INT8U cnt = 0;
	INT8U *pDest = dest;
	for(i = 0; i < len; i++)
	{
		c = getChar(num);
		if(c == -1)
		{
		    return cnt;
		    //return pDest;       
		}
		else
		{
		    cnt++;
		    *dest++ = (INT8U)(c);     
		}
	}
	return cnt;
	//return pDest;
}

// 從串口緩沖區(qū)中讀取某符號前的所有數(shù)據(jù)< Rxd0BufLev2Len 到dest中
uint8 getStr(uint8 num, uint8 c, uint8 *dest)
{
	uint8 i = 0;
	uint16 ch;
	while((uint8)(ch = getChar(num))!= c)
	{
		if(-1 == ch)
		{
			return i;
		}
		*dest++ = (uint8)ch;	
	}
	return i;
}

////////////////////////////////////////////////
//UART1 接受完成中斷
////////////////////////////////////////////////
#pragma interrupt_handler uart1_rx_isr:31
void uart1_rx_isr(void)
{
 	unsigned char   temp; 
	//ENTER_CRITICAL();//uart has received a character in UDR                      
	temp = UDR1;
	if(Rxd1BufLen >  Rxd1BufCnt)
	{
	    *inRxd1Buf = temp;
		Rxd1BufCnt++;			// 緩沖區(qū)中數(shù)據(jù)計數(shù)器加1
		if(inRxd1Buf == &Rxd1Buf[Rxd1BufLen -1])
		{
			inRxd1Buf = Rxd1Buf;		// 地址到頂部后回到底部
		}
		else
		{
		    inRxd1Buf++;			// 指針右移1位     
		}
	}
	//putChar(0, temp);
 	//EXIT_CRITICAL();
}


////////////////////////////////////////////////
//UART0 接受完成中斷
////////////////////////////////////////////////
#pragma	interrupt_handler	uart0_rx_isr:iv_USART0_RX    //iv_USART0_RXC
void uart0_rx_isr(void)
{
 	unsigned char data; 
	//ENTER_CRITICAL();//uart has received a character in UDR                      
	data = UDR0;
	if(Rxd0BufLen >  Rxd0BufCnt)
	{
	    *inRxd0Buf = data;
		Rxd0BufCnt++;			// 緩沖區(qū)中數(shù)據(jù)計數(shù)器加1
		if(inRxd0Buf == &Rxd0Buf[Rxd0BufLen -1])
		{
			inRxd0Buf = Rxd0Buf;		// 地址到頂部后回到底部
		}
		else
		{
		    inRxd0Buf++;			// 指針右移1位     
		}
	}
	//putChar(0, (INT8U)getChar(0));
 	//EXIT_CRITICAL();
}

///////////////////////////////////////////////
//發(fā)送寄存器空中斷
///////////////////////////////////////////////
#pragma interrupt_handler uart1_udre_isr:32
void uart1_udre_isr(void)
{
 	//ENTER_CRITICAL();//character transferred to shift register so UDR is now empty
 	//EXIT_CRITICAL();
}

//////////////////////////////////////////////
//發(fā)送完成中斷
//////////////////////////////////////////////
#pragma interrupt_handler uart1_tx_isr:33
void uart1_tx_isr(void)
{
 	//ENTER_CRITICAL();;//character has been transmitted
 	//EXIT_CRITICAL();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国视频一区二区| 日本sm残虐另类| 五月婷婷综合网| 激情六月婷婷久久| 成人sese在线| 7777精品久久久大香线蕉| 日韩一级欧美一级| 综合久久久久久久| 丝袜脚交一区二区| 国产精品一区免费视频| 91高清在线观看| 久久精品视频免费| 午夜欧美在线一二页| 国产呦萝稀缺另类资源| 欧美性受极品xxxx喷水| 久久久亚洲精品石原莉奈| 亚洲一区二区三区四区在线观看| 麻豆91在线播放| 91.com在线观看| 午夜视黄欧洲亚洲| 欧美中文字幕久久| 亚洲欧洲中文日韩久久av乱码| 国内精品视频一区二区三区八戒| 欧美在线影院一区二区| 国产精品初高中害羞小美女文| 国产一区二区在线免费观看| 91精品国产色综合久久不卡蜜臀 | 亚洲黄色尤物视频| 成人av在线资源网| 欧美经典三级视频一区二区三区| 麻豆成人av在线| 精品国产一区二区亚洲人成毛片 | 99久久精品国产毛片| 欧美精品一区二区三区很污很色的| 日韩中文字幕麻豆| 欧美高清性hdvideosex| 日本欧美一区二区| 欧美tickling网站挠脚心| 久久97超碰国产精品超碰| 精品粉嫩aⅴ一区二区三区四区| 蜜桃在线一区二区三区| 精品国产一区a| 国产精品一二三区| 亚洲欧美偷拍另类a∨色屁股| 欧美亚洲日本一区| 国产原创一区二区| 亚洲精品视频在线看| 欧美一区二区三区视频在线| 国产一区二区三区国产| 自拍偷拍欧美精品| 久久久久久久久久美女| 欧洲一区二区av| 国产在线视频不卡二| 亚洲二区在线观看| 欧美激情在线免费观看| 欧美色视频在线观看| 国产综合色视频| 一区二区三区欧美在线观看| 日韩免费性生活视频播放| 99久久久国产精品| 国产精品一区二区你懂的| 天天色天天爱天天射综合| 中文字幕 久热精品 视频在线| 欧美吻胸吃奶大尺度电影| 国产乱妇无码大片在线观看| 一区二区三区国产豹纹内裤在线| 国产女人18毛片水真多成人如厕| 精品久久久久久久久久久久久久久久久 | 亚洲国产美国国产综合一区二区| 久久综合色鬼综合色| 91麻豆精品国产91久久久更新时间| 成人动漫在线一区| 高清shemale亚洲人妖| 国产河南妇女毛片精品久久久 | 欧美精品一卡两卡| 欧美亚男人的天堂| 欧美日韩免费在线视频| 欧美亚洲一区二区在线观看| 欧美影视一区二区三区| 欧美亚洲动漫精品| 欧美午夜电影一区| 欧美精品欧美精品系列| 日韩一区二区三区电影在线观看| 欧美男女性生活在线直播观看| 欧美吞精做爰啪啪高潮| 777xxx欧美| 久久视频一区二区| 一区二区三区中文免费| 亚洲午夜久久久久久久久电影网| 亚洲一区精品在线| 青青草精品视频| 国产成人av电影在线观看| 91麻豆高清视频| 在线91免费看| 国产精品国产三级国产aⅴ无密码| 国产精品美女久久久久久久久久久| 国产精品成人一区二区三区夜夜夜| 一区二区三区在线观看欧美| 三级精品在线观看| 波多野结衣在线aⅴ中文字幕不卡| 在线免费观看视频一区| 亚洲精品一区二区三区影院| 亚洲裸体在线观看| 国产91丝袜在线播放| 91精品婷婷国产综合久久性色| 国产精品乱子久久久久| 日本欧美在线看| 在线观看日韩电影| 国产精品国产三级国产专播品爱网 | 国内精品久久久久影院色| 91蝌蚪porny成人天涯| 2024国产精品视频| 国产成人免费9x9x人网站视频| 色婷婷av一区二区三区软件| 久久九九久久九九| 蜜桃视频在线一区| 欧美丰满少妇xxxxx高潮对白| 一区二区三区资源| 色婷婷综合久久久久中文| 中文字幕精品—区二区四季| 国产一区在线看| 久久久久久免费毛片精品| 免费观看日韩av| 欧美不卡视频一区| 国内外精品视频| 国产欧美日韩精品a在线观看| 奇米色一区二区| 国产亚洲一本大道中文在线| 国产一区日韩二区欧美三区| 精品久久久久久久人人人人传媒| 国产一区二区三区电影在线观看| 91精品欧美一区二区三区综合在| 亚洲午夜一二三区视频| 日韩精品中文字幕在线不卡尤物 | 中文字幕国产一区| 成人免费av网站| 亚洲午夜三级在线| 国产日韩欧美精品电影三级在线| 国产一区二区成人久久免费影院| 国产精品免费视频网站| 欧美亚日韩国产aⅴ精品中极品| 免费人成精品欧美精品 | 国产精品911| 亚洲福利一区二区三区| 国产午夜精品一区二区三区视频 | 国产aⅴ综合色| 天天射综合影视| 亚洲日本成人在线观看| 欧美精品日韩精品| 91网站最新地址| 国产精品1区二区.| 麻豆免费精品视频| 亚洲综合一二三区| 国产精品欧美综合在线| 2020国产精品久久精品美国| 在线精品视频小说1| 不卡的av电影在线观看| 久久99久久99小草精品免视看| 亚洲一区二区三区四区在线免费观看| 亚洲精品一区二区三区在线观看| 欧美日韩一区三区| 欧美性猛交xxxx乱大交退制版| 国产成人精品影视| 精品一区免费av| 免费精品视频在线| 日本va欧美va瓶| 日韩国产一区二| 免费久久99精品国产| 看片的网站亚洲| 久久66热re国产| 国产成人鲁色资源国产91色综| 久久99久久精品欧美| 国产中文字幕一区| 99久久精品费精品国产一区二区 | 欧美经典一区二区| 亚洲国产精品高清| 亚洲日本在线看| 天天综合网天天综合色| 麻豆精品久久久| 成人激情文学综合网| 色婷婷狠狠综合| 日韩一二三区视频| 国产亚洲人成网站| 1000部国产精品成人观看| 亚洲成a人片在线观看中文| 午夜一区二区三区在线观看| 日韩在线a电影| 国产风韵犹存在线视精品| 91在线视频播放地址| 欧美videos中文字幕| 亚洲欧美日韩国产一区二区三区| 天天影视网天天综合色在线播放 | 欧美成人艳星乳罩| 亚洲男人的天堂av| 国产大陆亚洲精品国产| 一本到不卡免费一区二区| 日韩午夜激情电影| 国产乱人伦偷精品视频不卡| 97精品视频在线观看自产线路二| 欧美日韩aaaaa|