485通信详细描述(附示例代码)

        新的一年,万象更新,在这充满希望的开始,我选择以485通信为主题,开启新年的首篇文章,之所以选择这一通信协议,原因有三:

1、485通信,是我初涉嵌入式领域的启蒙老师。它如同一名智者,引领我走向嵌入式世界的大门,在我接触它、使用它、排查问题的过程中,被其百般折磨。

2、485通信具有广泛的应用前景。在我国,485通信已被广泛应用于工业控制、智能家居、物联网等领域。深入了解这一协议,有助于我们更好地把握行业发展脉搏,为我国嵌入式产业和繁荣作出贡献。

3、485通信的魅力在于其简洁 、稳定、高效的特点。它以一种低调的姿态,默默承载着无数数据的传输任务。在新的一年里,也是作者本人工作五年半的这刻,让我们重新审视它,挖掘其潜力,为需要它的人铺路,实现共同进步,这个美好的世界才会变得更美好

目录

1、半双工通信模式

2、使能引脚功能

3、485收发数据示例代码

4、结论


1、半双工通信模式

        RS-485通信时半双工的,这意味着线路在任何时刻只能用于发送或接收数据。不能同时进行,因此,需要通过控制使能信号来切换发送和接收状态。

2、使能引脚功能

        DE(Driver Enable):驱动使能引脚,用于控制发送器的激活状态。当DE为高电平时,发送器被激活,可以发送数据;当DE为低电平时,可以接收数据。

        当然也有例外,有些转发器有控制发送和接收的引脚各一个,具体得看看发送器的数据手册。

3、485收发数据示例代码

// 初始化GPIO引脚为输出模式
init_GPIO(DE_PIN, OUTPUT);


// 发送数据
void send_data(uint8_t *data, size_t len) {
    // 禁止接收,允许发送
    set_GPIO(DE_PIN, HIGH);

    // 发送数据
    for (size_t i = 0; i < len; i++) {
        uart_send(data[i]);
    }
    // 禁止发送,允许接收
    set_GPIO(DE_PIN, LOW);
}



// 接收数据
void receive_data(uint8_t *buffer, size_t len) {
    // 确保处于接收模式
    set_GPIO(DE_PIN, LOW);

    // 接收数据
    for (size_t i = 0; i < len; i++) {
        buffer[i] = uart_receive();
    }
}

通过正确地控制DE引脚,可以确保485通信在半双工模式下有效地工作,避免发送和接收之间的冲突。        

4、结论

        485很简单,但是很有趣,但是对当初身为小白的我来说,真的很懵。所以我认为,不知道不代表一个人蠢,只是你暂时不知道而已。只要用心去学,其实也没什么大不了的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EmbSW_Guru_Wx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值