OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4902|回复: 6

正点院子485实验,串口助手没有消息

[复制链接]

45

主题

267

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2018-6-24
在线时间
156 小时
发表于 2022-6-18 12:30:39 | 显示全部楼层 |阅读模式
1金钱
                key=KEY_Scan(0);
                if(key==KEY_RIGHT)//KEY0°′ÏÂ,·¢Ëíò»′Îêy¾Y
                {
                        for(i=0;i<5;i++)
                        {
                                rs485buf[i]=cnt+i;//ì&#238;3&#228;·¢&#203;í&#187;o3&#229;&#199;&#248;
                                LCD_ShowxNum(60+i*32,190,rs485buf[i],3,16,0X80);        //&#207;&#212;ê&#190;êy&#190;Y
                        }
                        RS485_Send_Data(rs485buf,5);//·¢&#203;í5&#184;&#246;×&#214;&#189;ú                                                           
                }       

最佳答案

查看完整内容[请看2#楼]

串口TX,RX,是否需要加上拉?我好像听人家说起过,要加上啦,不然不稳定,但是我好像没碰到过不稳定的情况, 2个板子之间120欧姆电阻加了吗? 收和发送切换的时候好像需要加延时,你切换到收以后,延时个几毫秒,然后在收数据,你切换到发送后,延时几毫秒再发送数据,不然485芯片没准备好,你发送了,估计要丢包
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

29

主题

492

帖子

0

精华

高级会员

Rank: 4

积分
810
金钱
810
注册时间
2016-4-7
在线时间
123 小时
发表于 2022-6-18 12:30:40 | 显示全部楼层
本帖最后由 xujian468 于 2022-6-20 11:00 编辑

串口TX,RX,是否需要加上拉?我好像听人家说起过,要加上啦,不然不稳定,但是我好像没碰到过不稳定的情况,
2个板子之间120欧姆电阻加了吗?
收和发送切换的时候好像需要加延时,你切换到收以后,延时个几毫秒,然后在收数据,你切换到发送后,延时几毫秒再发送数据,不然485芯片没准备好,你发送了,估计要丢包
回复

使用道具 举报

45

主题

267

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2018-6-24
在线时间
156 小时
 楼主| 发表于 2022-6-18 13:29:32 | 显示全部楼层
这mx485芯片很难伺候,用纯串口2,可以发送数据到串口助手后,串入它就是奇怪,代码如下:                else if(USART2_RX_STA&0x8000){                                          
                        len=USART2_RX_STA&0x3fff;//μ&#195;μ&#189;′&#203;′&#206;&#189;óê&#213;μ&#189;μ&#196;êy&#190;Y3¤&#182;è
//                        USART2_RX_BUF[len]=0;
//                        u2_printf((char*)USART2_RX_BUF);
                        RS485_TX_EN=1;                        //éè&#214;&#195;&#206;a·¢&#203;í&#196;£ê&#189;
                        for(t=0;t<len;t++){       
                                USART_SendData(USART2, USART2_RX_BUF[t]+1);//&#207;ò′&#174;&#191;ú1·¢&#203;íêy&#190;Y                               
                                while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//μè′y·¢&#203;í&#189;áê&#248;

                        }
                        USART2_RX_STA=0;
                        RS485_TX_EN=0;                                //éè&#214;&#195;&#206;a&#189;óê&#213;&#196;£ê&#189;       
回复

使用道具 举报

45

主题

267

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2018-6-24
在线时间
156 小时
 楼主| 发表于 2022-6-18 13:32:53 | 显示全部楼层
发字符1234,收到的是67 B3 76 00 32 33 34 35 00   这前导67 B3 76那里来的?4个字符前后 00 32 33 34 35 00夹着\0,奇怪的485芯片
回复

使用道具 举报

45

主题

267

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2018-6-24
在线时间
156 小时
 楼主| 发表于 2022-6-18 14:05:15 | 显示全部楼层
现在有了新发现,没有消息是re控制脚搞错,现在按key0有消息了。只是明明发5个字节,485芯片就是在后面追加发个00,啥道理?如果串口助手发1234却能多收到字节,像这样67 B3 76 00 31 32 33 34 00 。这啥道理?搞不懂啊
回复

使用道具 举报

45

主题

267

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2018-6-24
在线时间
156 小时
 楼主| 发表于 2022-6-18 14:14:22 | 显示全部楼层
进一步发现,前导乱七八糟的字符个数跟你实际要发的字节数-1对应,好奇怪的现象。串口工具用的是某宝的6合1,cp2102的芯片
回复

使用道具 举报

45

主题

267

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2018-6-24
在线时间
156 小时
 楼主| 发表于 2022-6-21 14:33:00 | 显示全部楼层
谢谢你,牛逼。我在发送完数据后加延时10ms,再进行管脚切换,问题没有了。看起来485芯片是需要时间准备的
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 22:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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