ES485通讯原理

● 半双工特性:RS-485 是一种差分串行通信标准,通常用于长距离和高噪声环境下的通信。RS-485 通信是半双工的,这意味着在任何时刻,只能进行发送或接收操作,而不能同时进行。

● 特别注意代码Ctrl_EN 控制数据方向引脚

/*-----------------------------------------------
                硬件端口定义
------------------------------------------------*/
sbit Ctrl_EN = P2^0;  //发送接收控制端     Ctrl_EN 用于控制数据方向。在 RS-485 通信中,需要通过控制端来选择是发送还是接收数据。Ctrl_EN 通常连接到一个控制 RS-485 驱动器的方向引脚上。
/*------------------------------------------------
                 函数声明
------------------------------------------------*/
void SendStr(unsigned char *s);
/*------------------------------------------------
                串口初始化
------------------------------------------------*/
void InitUART  (void)
{

    SCON  = 0x50;		        // SCON: 模式 1, 8-bit UART, 使能接收  
    TMOD |= 0x20;               // TMOD: timer 1, mode 2, 8-bit 重装
    TH1   = 0xFD;               // TH1:  重装值 9600 波特率 晶振 11.0592MHz  
    TR1   = 1;                  // TR1:  timer 1 打开                         
    EA    = 1;                  //打开总中断
    //ES    = 1;                  //打开串口中断
}                            
/*------------------------------------------------
                    主函数
------------------------------------------------*/
void main (void)
{

InitUART();

Ctrl_EN=1;  //发送模式

while (1)                       
    {
    SendStr("UART test");
	DelayMs(240);//延时循环发送
    DelayMs(240);
    }
}

/*------------------------------------------------
                    发送一个字节
------------------------------------------------*/
void SendByte(unsigned char dat)
{
 SBUF = dat;
 while(!TI);//不断坚持TI是否被置1,来判断数据是否发送完毕。
      TI = 0;
}
/*------------------------------------------------
                    发送一个字符串
------------------------------------------------*/
void SendStr(unsigned char *s)
{
 while(*s!='\0')// \0 表示字符串结束标志,通过检测是否字符串末尾
  {
  SendByte(*s);
  s++;
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值