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

📄 df_uart.c

📁 用430做的PWM程序
💻 C
字号:
#include<msp430x14x.h>
#include"DF_UART.h"
#include"XIEYI.h"
#include"PACKET.h"

#define USART_DIR P3DIR           //串口方向设置寄存器
#define USART_SEL P3SEL           //串口功能设置寄存器  
#define USART_IN  P3IN            //串口输入设置寄存器
#define USART_OUT P3OUT           //串口输出设置寄存器
#define UTXD0 BIT4                //Uart0
#define URXD0 BIT5
#define UTXD1 BIT6                //Uart1
#define URXD1 BIT7

/***********************************************
** 函数名称: void InitUart(void)
** 功能描述: 串口初始化函数
** 晶  振:   4MHz
** 输 入:   无
** 输 出:   无
************************************************/ 
void InitUart(void)
{
   USART_SEL |= UTXD0 +URXD0;    //设置管脚为第二功能
	UCTL0 = CHAR+PENA+SWRST;      //8位数据,1位停止位,奇校验
	UTCTL0 = SSEL0;               //选择UCLK = ACLK
	UBR00 = 0x3;                  //设置波特率9600bit/s
	UBR10 = 0;
	UMCTL0 = 0x4A;
	UCTL0 &= ~SWRST;
	ME1 |= UTXE0 + URXE0;      	//打开模块USART0
	IE1 |= URXIE0 ;			      //打开USART0接收中断        
}
/***********************************************
** 函数名称: void SendUart_Byte( uchar dataByte )
** 功能描述: 串口发送一字节函数
** 晶  振:   4MHz
** 输 入:   dataByte:要发送的字节数
** 输 出:   无
** 调用示例: void SendUart_Byte( 0x30 );
************************************************/ 
void SendUart_Byte( uchar dataByte )
{
    while( (IFG1&UTXIFG0)==0 ) ;
    TXBUF0 = dataByte;
}
/***********************************************
** 函数名称: void SendUart_Array( uchar *pBuffer, uchar n_Byte)
** 功能描述: 串口发送字节数组函数
** 晶  振:   4MHz
** 输 入:   pBuffer:指向发送数据缓冲区的指针,n_Byte:要发送的字节数
** 输 出:   无
** 调用示例: void SendUart_Byte( 0x30 );
************************************************/ 
void SendUart_Array( uchar *pBuffer, uchar n_Byte)
{
   uchar q0;
	for( q0=0; q0<n_byte; q0++ )
	{
	   SendUart_Byte( *pBuffer )
		pBuffer++;
	}
}
/***********************************************************
函数名称:interrupt[ USART0RX_VECTOR ] void Usart0RX(void)
函数功能:串口接收中断函数
入口参数:无
出口参数:无 
备    注: UART1RX_VECTOR
设    计:Kimperh              日    期:2007-05-12
修    改:                     日    期: 
***********************************************************/
interrupt[ UART0RX_VECTOR ] void Usart0RX(void)
{
    if( (U0RCTL&RXERR) == 0 )
    {          
        AddUsData( RXBUF0 );
    }
    else
    {
        SetPacketErr();
        U0RCTL &= ~(FE+PE+OE+BRK);        
    }
    LPM3_EXIT;
}

⌨️ 快捷键说明

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