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

📄 df_uart1.c

📁 MSP430开发的使用PID算法温度控制程序 本程序通过485总线与上位机通信发送和接受命令
💻 C
字号:
//****************************************************************************
//文件名: df_uart1.c
//描述:UART异步串行通讯程序。使用USART1。
//      晶体振荡器 XT2:8MHz  LFXT1:32.768kHz
//      MCLK:8MHz SMCLK:2MHz  ACLK:32.768kHz
//      USART1波特率:19200bit/s,8位数据位,1位停止位,奇校验
//****************************************************************************
#include <MSP430x14x.h>
#include "df_uart1.h"
#include "Receiver.h"


#define USART_DIR P3DIR
#define USART_SEL P3SEL
#define USART_IN  P3IN
#define USART_OUT P3OUT
#define TCP1      BIT2
#define UTXD1     BIT6
#define URXD1     BIT7

void Uart1Init()
{
    USART_SEL |= UTXD1 + URXD1;             //设置管脚为第二功能
    USART_DIR |= TCP1+UTXD1;                //设置管脚为输出方式
    USART_OUT &= ~TCP1;                     //置RS-485为接收方式
    UCTL1 = CHAR+SWRST;                     //8位数据,1位停止位
    UTCTL1 = SSEL1;                         //选择UCLK = SMCLK
    UBR01 = (unsigned char)(SMCLK / BAUDRATE1);               //设置波特率57600bit/s
    UBR11 = (unsigned char)((SMCLK / BAUDRATE1) >> 8);        // 8MHz / 57600 = 138.89
    UMCTL1 = 0x00;
    UCTL1 &= ~SWRST;
    ME2 |= UTXE1 + URXE1;                   //打开模块USART1
    IE2 |= URXIE1 ;                         //打开USART1接收中断
}

/*****************************************************************************
发送函数。采用查询方式。
pBuffer:指向发送数据缓冲区的指针
n_byte:发送的字节数
******************************************************************************/
void SendUart1(unsigned char *pBuffer,unsigned char n_byte)
{
        unsigned int q0;
        USART_OUT |= TCP1;   //置RS-485为发送方式
        for (q0=0;q0<n_byte;q0++)
        {
                while((IFG2&UTXIFG1)==0);//modify IFG2 and UTXIFG1
                TXBUF1 = *pBuffer;       //modefy TXBUF1
                pBuffer++;
        }
        while((IFG2&UTXIFG1)==0);//modify IFG2 and UTXIFG1
        for(q0=0;q0<255;q0++);
        USART_OUT &= ~TCP1;
}

//****************************************************************************
//USART1接收中断函数
//****************************************************************************
#pragma vector=USART1RX_VECTOR
__interrupt void Ustra1Rx()
{
	
}

⌨️ 快捷键说明

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