msp430 RS485 示例程序
程序功能:通過RS485端口不停地發(fā)送數(shù)據(jù)0xaa
------------------------------------------------
測試說明:用示波器觀察RS485端口A、B信號線上的波形
或者用RS485接收器接收發(fā)送的字符。
************************************************/
#include <msp430x14x.h>
#define DRE_out P3DIR |= BIT3 //連接485芯片的DE,RE端口的IO設(shè)置為輸出狀態(tài)
#define DE P3OUT |= BIT3 //設(shè)置485芯片處于發(fā)送狀態(tài)
#define RE P3OUT &= ~BIT3 //設(shè)置485芯片處于接收狀態(tài)
void Set_UART1(void);
/****************主函數(shù)****************/
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //關(guān)閉看門狗
DRE_out;
DE;
Set_UART1();
while (1)
{
TXBUF1 = 0xaa;
while(!(IFG2 & UTXIFG1)); //等待發(fā)送結(jié)束
IFG2 &= ~UTXIFG1;
}
}
/*******************************************
函數(shù)名稱:Set_UART1
功 能:設(shè)置MCU的UART1對應(yīng)的寄存器
參 數(shù):無
返回值 :無
********************************************/
void Set_UART1(void)
{
P3SEL |= 0xC0; //將P3.6,P3.7選做UART1的通信端口
ME2 |= UTXE1 + URXE1; //使能USART1的TXD和RXD
UCTL1 |= CHAR; //選擇8-bit字符
UTCTL1 |= SSEL0; //驅(qū)動時鐘選擇ACLK
UBR01 = 0x0D; //波特率2400
UBR11 = 0x00;
UMCTL1 = 0x6B; //調(diào)整
UCTL1 &= ~SWRST; //初始化UART狀態(tài)機
}
評論