#include <msp430x14x.h>
#define DRE_out P5DIR |= BIT3 //连接485芯片的DE,RE端口的IO设置为输出状态
#define DE P5OUT |= BIT3 //设置485芯片处于发送状态
#define RE P5OUT &= ~BIT3 //设置485芯片处于接收状态
void UART1(void);
/****************主函数****************/
void main(void)
{
unsigned i;
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
DRE_out;
UART1();
P2DIR = 0X03;
P2OUT = 0X00;
while (1)
{
RE;
_NOP();
_BIS_SR(LPM3_bits + GIE);
DE;
_NOP();
P2OUT = 0X02;
TXBUF1 = 0xaa;
while(!(IFG2 & UTXIFG1)); //等待发送结束
IFG2 &= ~UTXIFG1;
for(i=0;i<20000;i++);
}
}
void UART1(void)
{
P3SEL |= 0xC0; //将P3.6,P3.7选做UART1的通信端口
ME2 |= UTXE1 + URXE1; //使能USART1的TXD和RXD
UCTL1 |= CHAR; //选择8-bit字符
UTCTL1 |= SSEL0; //驱动时钟选择ACLK
UBR01 = 0x0D; //波特率2400
UBR11 = 0x00;
UMCTL1 = 0x6B; //调整
UCTL1 &= ~SWRST; //初始化UART状态机
IE2 |= URXIE1; //使能接受中断
}
#pragma vector = UART1RX_VECTOR
__interrupt void UART1_RX_ISR(void)
{
P2OUT = 0X01;
_BIC_SR_IRQ(LPM3_bits);
}
我用串口助手收到的是 ff 可是我的TXBUF1 = 0xaa 我将 TXBUF1中的值换位其他数值也是一样
按道理说是应该收到aa 小弟刚入门请各位前辈指教一二 。
此帖出自
小平头技术问答
接受不到字符有很多原因 有时候硬件也会发生很多问题 总之可以先在程序上面纠错 然后再检查硬件问题 祝你成功!!
一周热门 更多>