[应用相关] 485通讯问题

[复制链接]
1969|11
 楼主| huangfeng33 发表于 2013-11-29 20:15 | 显示全部楼层 |阅读模式
stm32f103rbt6的485通讯,发现一个奇怪的问题,每发送二条才回收到一条回执,硬件图如下:
2901.jpg
发送图如下:

        GPIOA->BSRR =1<<8; //PA8 ÖøßÓÃÓÚ·¢ËÍ
        Delay_ms(2);


        USART1->DR=(u8)0x68;
        while((USART1->SR&0X40)==0);//µÈ´ý·¢ËͽáÊø


        USART1->DR=DeID1;
        while((USART1->SR&0X40)==0);//µÈ´ý·¢ËͽáÊø


        USART1->DR=DeID2;
        while((USART1->SR&0X40)==0);//µÈ´ý·¢ËͽáÊø


        USART1->DR=(u8)0x21;
        while((USART1->SR&0X40)==0);//µÈ´ý·¢ËͽáÊø


        USART1->DR=(u8)start_point;
        while((USART1->SR&0X40)==0);//µÈ´ý·¢ËͽáÊø


        USART1->DR=(u8)end_point;
        while((USART1->SR&0X40)==0);//µÈ´ý·¢ËͽáÊø


        USART1->DR=(u8)point_num;
        while((USART1->SR&0X40)==0);//µÈ´ý·¢ËͽáÊø


        USART1->DR=(u8)max;
        while((USART1->SR&0X40)==0);//µÈ´ý·¢ËͽáÊø


        USART1->DR=(u8)0x16;
        while((USART1->SR&0X40)==0);//µÈ´ý·¢ËͽáÊø


        Delay_ms(2);
        GPIOA->BRR =1<<8; //PA8 À­µÍÓÃÓÚ½Ó
        Delay_ms(2);

什么情况啊?求解释。
zhangmangui 发表于 2013-11-29 22:22 | 显示全部楼层
看了一下   硬件没问题
tianli1980 发表于 2013-12-5 16:33 | 显示全部楼层
是不是串口1和串口2的波特率不一样呢?
zeluo 发表于 2013-12-5 17:25 | 显示全部楼层
应该不是硬件的问题吧   楼主   硬件   初步判断  没有问题啊   
zeluo 发表于 2013-12-5 17:25 | 显示全部楼层
你单步调试看看    降低波特率  更换串口调试软件   试一试   
拿起书本 发表于 2013-12-5 19:56 | 显示全部楼层
特率不一样是有关系的,可能高的向低的发就有问题,低的没发完高的把它冲了了。第一要用缓存机制。第二要发完或发之前等发送标致位完成
lhchen922 发表于 2013-12-5 21:11 | 显示全部楼层
485是半双工,要考虑好,两边的收发问题。要不就会丢东西。
张允 发表于 2013-12-5 21:32 | 显示全部楼层
如果我没有记错的话,MAX485ESA是5V供电的。
戈卫东 发表于 2013-12-6 01:01 | 显示全部楼层
据说这种检测TC的码容易丢失第一字节.
TC信号的清除需要"读SR"跟着一个"写DR"的操作,你的第一个字节写之前没有一个"读SR",导致后面的TC检测立即通过然后写第二字节,第一个字节被冲掉.
戈卫东 发表于 2013-12-6 01:04 | 显示全部楼层
        ...
        USART1->SR;     /*读SR*/
        USART1->DR=(u8)0x68;
        while((USART1->SR&0X40)==0);//µÈ´ý·¢ËͽáÊø

        ...
戈卫东 发表于 2013-12-6 01:16 | 显示全部楼层
检测TXE要方便些,不过最后一个字节应该检测TC.
如果最后一个字节检测TC那么那些延时不是必须的.
efen 发表于 2013-12-6 10:18 | 显示全部楼层
估计是7楼的问题,从机接收转发送要延时处理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

506

主题

2446

帖子

8

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