想问一下为什么我这个430单片机rs485的串口通讯在串口助手里没有发送信息给我,串口配置是复制430官方的例程,在串口助手上能打开串口,就是没有信息发过来,P65和66是485的RX和TX,P63是485的ctrl
void RS485_init(void)
{
P6SEL |= BIT5+BIT6;//设置p6.5与p6.6为串口通信
P6DIR |= BIT3;
//P6OUT |= BIT3;//
P6OUT &= ~BIT3;// 接收
UCA0CTL1 |= UCSSEL_1; // CLK = ACLK
//UCA0CTL0 无校验位 8位数据位 一位停止位
UCA0BR0 = 0x03; // 32k/9600 - 3.41
UCA0BR1 = 0x00; //
UCA0MCTL = 0x06; // Modulation
UCA0CTL1 &= ~UCSWRST; // Initialize USCI state machine 软件复位禁止
IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt
}
void Uart0_Send_Byte(unsigned char data)
{
P6OUT |= BIT3; //发送状态
while(!(IFG2&UCA0TXIFG));//发送寄存器空的时候发送数据
UCA0TXBUF = data;
P6OUT &= ~BIT3;// 接收
}
主函数里
while(1)
{
//P6OUT |= BIT3; //485发送
//uartOUT(Ref,2);
Uart0_Send_Byte(2);
//P6OUT &= ~BIT3;//485接收
LED1_on;
}
void Uart0_Send_Byte(unsigned char data)
{
P6OUT |= BIT3; //发送状态
while(!(IFG2&UCA0TXIFG));//发送寄存器空的时候发送数据
UCA0TXBUF = data;
P6OUT &= ~BIT3;// 接收
}这个函数了判断数据发送完了,再把使能端设置为接收