请选择 进入手机版 | 继续访问电脑版

安富莱电子论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1779|回复: 1
收起左侧

MODBUS模板,RS485收发控制端问题请教

[复制链接]

9

主题

36

帖子

54

积分

初级会员

积分
54
发表于 2017-4-8 11:30:50 | 显示全部楼层 |阅读模式
再使用MODBUS模板时,在发送完所有字节后

/* 数据bit位全部发送完毕的中断 */
    else if (USART_GetITStatus(_pUart->uart, USART_IT_TC) != RESET)
    {
        //if (_pUart->usTxRead == _pUart->usTxWrite)
        if (_pUart->usTxCount == 0)
        {
            /* 如果发送FIFO的数据全部发送完毕,禁止数据发送完毕中断 */
            USART_ITConfig(_pUart->uart, USART_IT_TC, DISABLE);

            /* 回调函数, 一般用来处理RS485通信,将RS485芯片设置为接收模式,避免抢占总线 */
            if (_pUart->SendOver)
            {
                _pUart->SendOver();
            }
        }
使用回调函数_pUart->SendOver();来将控制端置为接收模式。
请问这个控制前需要加入一定时间的延时吗?以保证在硬件上,所有字节已经完整发送完毕。对于不同的485芯片需要进行相应的时间调整吗?
回复

使用道具 举报

5547

主题

3万

帖子

4万

积分

管理员

做人第一,工作第二

Rank: 9Rank: 9Rank: 9

积分
44791
QQ
发表于 2017-4-8 11:33:48 | 显示全部楼层
不需要,加延迟的是是因为很多用户的程序没有将发生空中断和发送完成中断都加上。检测到发送完成中断后,做切换是没问题的,无需做延迟。
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|安富莱电子论坛 ( 鄂ICP备09023347号,公安机关备案号42010602000201 )

GMT+8, 2019-4-25 14:26 , Processed in 0.162885 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表