×

STM32调试485(sp3485)技术总结资料下载

消耗积分:5 | 格式:pdf | 大小:777.45KB | 2021-04-07

张亮

分享资料个

1.首先说明一下本人这次使用的STM32芯片是STM32F103RB,使用的资源是片内的USART1。 2.下面是我的电路连接图: 注:电路可以稍做修改更好,在B和A分别接下拉电阻到地和上拉电阻到5v,阻值选择为10K即可,这是为了在没有进行数据传输时保证两条数据线的状态为确定值。 做一下简单的说明: (1)PA8是sp3485的发送/接收使能端,sp3485只能支持半双工的通信,所以这个引脚就是来控制这个芯片到底是收数据还是发数据的。 (2)在有些电路连接中,sp3485的A和B端会一个被连接一个上拉电阻到3.3V,另一个会连接一个下拉电阻到GND,这样做的目的是当本sp3485不参与通信时不会影响网络的稳定性。 3.本次调试方式 PC机——USB转232转换头——RS232/RS485双向转换头——sp3485——STM32,因为是第一次调试sp3485芯片,所以当然没有太大意,先拿电脑调试,调试通了再看板子和板子之间的通信了。 4.本次试验的代码: main函数: 注:在用STM32的串口做485通信的时候,发送数据的时候,检测到最后一个数据发送后的标志位已经置位,但是还不能立即失能485芯片的发送引脚,因为虽然标志位已经置位,485芯片的数据还没有完全发送出去,这个时候需要ms级别的延时,一般2个毫秒左右基本就没有问题了。 RCC设置函数: GPIO设置函数: USART设置函数: NVIC设置函数: 5.实验结果 不成功,找了很久的原因,首先请检查sp3485与232/485双向转换头的连接线,我得到的最终的正确的连接办法是sp3485的A连接到T/R ,而sp3485的B连接到T/R-。 更改连接顺序之后还是出现了很奇怪的现象,每次上电之后PC的串口调试助手都会接收到04 03 00,都要多一个00(十六进制),还有更奇怪的现象,当在PC机上输入十个数据,点击发送之后,返回来居然是20个数据,前10个数据是错误的,后10个才是我发送过去的数据。。。 这个现象非常奇怪,将程序反复修改,还是不能解决问题,甚至一度怀疑sp3485坏掉了,最后弄了一整天,将sp3485A和B引脚之间的120欧姆的电阻去掉,一切恢复正常了! 说明一下:我的sp3485和232/485互转器之间的距离20cm左右,所以这个距离应该是不用接120欧姆的匹配电阻的。 本文转载自: 声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编邮箱: 进行处理。 (mbbeetchina)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !