维库电子市场网
登录 免费注册 首页 | 行业黑名单 | 委托交易 | 帮助 | English
 
IC供应
IC求购
非IC供应
非IC求购
电子资讯
技术资料
商人论坛
 
技术文章 PDF资料 IC价格 引脚说明 电路图 IC替换 IC厂商 电子辞典
作者 主题 内容
采购元器件好去处--维库电子市场网推荐
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

RS485中继器的通讯问题(有原程序)

作者:wyc771112 栏目:通信技术
RS485中继器的通讯问题(有原程序)
敬请高手指点,使用双串口,程序如下:
#include  <msp430x14x.h>

void Init(void);                                   //声明UART初始化函数
CHAR Data[20],Buffer0[20],Buffer1[20];
unsigned CHAR i=0,j,count;

/************************************************
函 数 名: main()
功    能:主函数
说    明:
调    用:
全局变量:
入口参数:无
出口参数:无     
返 回 值:无
************************************************/
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;                       //关闭看门狗
Init();                                         //UART初始化
_EINT();                                        //中断允许                                                                          

while(1);                                       //主循环                                      
}
/************************************************
函 数 名: init()
功    能:初始化系统
说    明:
调    用:
全局变量:
入口参数:无
出口参数:无
返 回 值:无
************************************************/
void Init(void)
{
UCTL1=UCTL0&=~SWRST;                          //SWRST复位,USART允许
UCTL1=UCTL0=0x10;                             //8位数据位,1位停止位,无校验
//URCTL1=URCTL0|=URXWIE;                      //只有地址字符使URXIFG置位
UBR01=UBR00=0x03;
UBR11=UBR10=0x00;                             //使用32KHZ晶振时,波特率为9600bps
UMCTL1=UMCTL0=0x4A;                           //位调整                         
UTCTL1=UTCTL0=0x10;                           //选定ACLK为时钟源
ME1=ME2|=0x30;                                //UART0、UART1发送及接收模块允许
P3SEL=0xF0;                                   //P3.4、P3.5、P3.6、P3.7被UART发送模块占用
P3DIR=0x50;                                   //P3.4、P3.6输出,P3.5、P3.7输入
P4DIR=0X0f;                                   //P4.0、P4.1 输出
P4OUT&=~0x0f;                                 //P4.0、P4.1 置0
IE2|=URXIE1;
IE1|=URXIE0;                                  //接收中断允许
}
/************************************************
函 数 名: UART0RX()
功    能:UART0中断
说    明:
调    用:
全局变量:
入口参数:无
出口参数:无
返 回 值:无
************************************************/
interrupt[UART0RX_VECTOR] void UART0RX(void)
{
   if(RXBUF0==1)                                    //UART0等待接收
   {
    Data[i]=RXBUF0;                               //接收数据,并存在Data数组中
    if(Data[i++]==0)
     {
     for(j=0;j<i;j++) Buffer0[j]=Data[j];         //复制接收数据
     }
     //P4OUT|=BIT1;
     while((UTCTL1&0x01)==0);
     for(i=0;i<j;i++)
      {
      TXBUF1=Buffer0[j];
      while((UTCTL1&0x01)==0);
      }
     //P4OUT&=~BIT1;
    }
}
/************************************************
函 数 名: UART1RX()
功    能:UART1中断
说    明:
调    用:
全局变量:
入口参数:无
出口参数:无
返 回 值:无
************************************************/
interrupt[UART1RX_VECTOR] void UART1RX(void)
{
   if(RXBUF1==1)                                    //UART1等待接收
    {
     Data[i]=RXBUF1;
&
参与讨论
昵称:
讨论内容:
 
 
相关帖子
请教程序的问题
请问:如何DC升压(3.3V--5V)给GPRS模块供电(2A峰值电流)
请问30mA电流环的电路
sim100s32-e
高手帮帮忙,RS485的问题,分别与PC机通信正常,连接起来就不正常了
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号