打印
[应用相关]

485通讯注意事项

[复制链接]
821|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Fannymini|  楼主 | 2015-8-4 15:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天调485通讯功能. 调了2个小时,才找到问题.
特别注意的是: 485为半双工通讯. 在通讯方向改变时,需要加一定延时,否则 通讯不正常.

RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO, ENABLE);  //IO重映射时


GPIO_SetBits(GPIOC,GPIO_Pin_7); //RE电平为高,设为发送
for(cou=0;cou<20000;cou++); //延时

USART_SendData(USART3,temp+1); //发送数据
    while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==RESET);
    USART_ClearFlag(USART3,USART_FLAG_TXE);

for(cou=0;cou<20000;cou++);  //等待硬件发送完成
GPIO_ResetBits(GPIOC,GPIO_Pin_7);//再改变RE状态,改为接收


沙发
songchenping| | 2015-8-4 16:29 | 只看该作者
没听说过还要这样啊

使用特权

评论回复
板凳
han0097| | 2015-8-4 16:56 | 只看该作者
是不是硬件弄的不行啊!

使用特权

评论回复
地板
elvsf2| | 2015-8-4 17:38 | 只看该作者
1、USART_FLAG_TXE只是表示“数据已经被转移到移位寄存器”,不是发送完成。
2、for(cou=0;cou<20000;cou++);  //等待硬件发送完成  ,这个时间是怎么算出来的

使用特权

评论回复
5
Thor9| | 2015-8-5 11:26 | 只看该作者
485为半双工通讯. 在通讯方向改变时,需要加一定延时,学习了

使用特权

评论回复
6
s976228410| | 2015-8-6 09:14 | 只看该作者
是不是你那边的硬件上面有问题?一般的都不需要加延时的。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:从事STM32/STM8开发板、电机套件、手机周边产品开发,技术交流群:19043725。https://fretech.taobao.com

53

主题

162

帖子

7

粉丝