[应用相关] 485通讯注意事项

[复制链接]
1152|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++);  //等待硬件发送完成  ,这个时间是怎么算出来的
Thor9 发表于 2015-8-5 11:26 | 显示全部楼层
485为半双工通讯. 在通讯方向改变时,需要加一定延时,学习了
s976228410 发表于 2015-8-6 09:14 | 显示全部楼层
是不是你那边的硬件上面有问题?一般的都不需要加延时的。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

53

主题

162

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部