⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart0 接收1.c

📁 msp430 串口模拟程序
💻 C
字号:
	//USART设置//
		//1.USART0的设置
		U0CTL=0x11;			
		U0TCTL=0x21;		//时钟源选择系统主时钟SMCLK         //0x10;		//时钟源选择辅助时钟ACLK
		U0RCTL=0x00; 		//只有接收到无差错字符(即FE=0,PE=0,OE=0,BRK=0)时,才会将当前接收到的字符装入U0RXBUF中(同时使U0RXIFG=1)
		U0BR0=0x00;   		//0x03;
		U0BR1=0x03;			//0;
		U0MCTL=0x00;//0x15;		//BAUD=7372800/(0X300+(0+0+0+0+0+0+0+0)/8)=9600   //BAUD=32768/(0X03+(0+0+0+1+0+1+0+1)/8)=9709.04
		U0CTL&=0xfe;
		
	//SFR中的中断控制位的设置//
	ME1=0xc0;	// bit7=1,bit6=1: UART0 Transmit/Receive enabled
	ME2=0;		//0x30;	//先禁止USART1的发送和接收
	IFG1=0;
	IFG2=0;
	IE1=0x40;	//bit7=0: UART0 transmit interrupt disable;  
				//bit6=1: UART0 receive interrupt enabled; 
	IE2=0; //0x30;	//bit5=0,bit4=0: UART1 Transmit/Receive interrupt disable
	
	//变量初始化
	fUart0Received=0;
  	fUart0Receiving=0;
  	pUart0Rx=0;

/***********************************************************************
*	
*		函数名:Uart0Rx()
*		说  明:UART0接收中断服务函数
*		入口值:无
*		返回值:存入aUart0RxBuf[72]数组中
*		日  期:02-6-21 15:56
*
***********************************************************************/
interrupt [UART0RX_VECTOR] void Uart0Rx(void)
{
	byte bU0rxbufTemp;
	
	switch(pUart0Rx){										// 注意:URXIFG0由硬件清零
	    	case 0:
				if(U0RXBUF<=0x7F){
		    		aUart0RxBuf[0]=U0RXBUF;
		    		pUart0Rx++;
		    		fUart0Receiving=1;
				}
				break;

	    	case 1:
	    		bU0rxbufTemp=~U0RXBUF;
				if(aUart0RxBuf[0]==bU0rxbufTemp){
		    		pUart0Rx++;
				}
				else{
					if(U0RXBUF<=0x7F)
						aUart0RxBuf[0]=U0RXBUF;
					else
						pUart0Rx=0;
				}
				break;

	    	case 2:						//可以去掉,但为了便于分析,暂且保留
				aUart0RxBuf[1]=U0RXBUF;
				if(aUart0RxBuf[1]==0){		// 其后数据长度
					pUart0Rx=0;
					fUart0Received=1;
					fUart0Receiving=0;
				}
				else
					pUart0Rx++;
				break;
		   
	    	default:		
				aUart0RxBuf[pUart0Rx-1]=U0RXBUF;
				if(pUart0Rx==(aUart0RxBuf[1]+2)){
					pUart0Rx=0;
		    		fUart0Received=1;
		    		fUart0Receiving=0;
				}
				else
					pUart0Rx++;
				break;
		} // End switch(pUart0Rx) 
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -