STM32
直播中

刘燕

8年用户 1467经验值
私信 关注
[问答]

单片机串口是如何与sp3232通信进行连接的

如何去使用sp3232通信呢?
单片机串口是如何与sp3232通信进行连接的?

回帖(1)

李建平

2021-11-9 16:48:07
232通信距离比较远,所以一般单片机都是外接232或者485的线接出去,然后到地方了再转换回来。
我这里只是简单的记录我的使用。由于实验板没有预留其它串口,所以现在先使用它来进行调试。
模型: 单片机串口接到sp3232,sp3232的作用是ttl转232电平,输出txd,rxd,gnd
然后到电脑这边是需要232转成u***。 这里是需要一个u***转232的模块。
单片机这边的是ttl电平,0v为0,3.3v为1.
rs232中,负数是高电平,正数是高电平。

电脑这边需要232转u***。
所以总的就是 ttl----232----u***
具体可以参考:
TTL电平、COMS电平、232电平、USB电平的区别与转换方法 - 种瓜大爷 - CSDN博客blog.csdn.net
在目前的其它工业控制使用的串口通讯中,一般只使用 RXD、TXD 以及 GND 三条信 号线,直接传输数据信号。而 RTS、CTS、DSR、DTR及 DCD信号都被裁剪掉了,如果 您在前面被这些信号弄得晕头转向,那就直接忽略它们吧。
这里是使用sp3232来做转换芯片,输入时stm32f429单片机的串口1, PA9为发送端,PA10为接收端。

这里我使用的是实验板,采用的是野火的DAP下载器,所以在下载的时候记得修改:不然会检测不到设备,其实你ST-LINK检测不到就可以试着换成DAP的。

然后程序在这里进行了讲解,这里就不重复了。由于程序都是使用的串口1,所以我改都没有改程序,直接rebuild之后就load了。
然后接线如下:
232输出接口直接接232线
然后由于我的电脑只有接显示屏的9孔,所以另外买了个u***转232的接口:
然后最后的结果如下:

非常完美,所以后面调试的时候,直接把它封装成模块进行调用即可。
后面,由于实验板上的是自制的9孔串口,集成了485和232,所以为了同时使用这两个通讯方式,得单独分两个串口出来。
所以只能对应232来说,只能有3根线(txd,rxd,gnd)。gnd加txd就可以实现发送数据。没有rxd只是不能接收数据而已。
对于485来说,两根线也可(A,B),最好是3根线,加上一根GND。
这里在接线过程中,发现直接按照理论接过去 出来的是乱码。但是在开发板上直接接过去就可以,所以出现许多问题。
不是中间串口线的问题,拔掉之后还是乱码。(这里乱码的主要原因是 ttl转232后,当时没注意,直接232接到u***转ttl上,也就是232与ttl接在了一起,所以就乱码了,当时脑子懵了。。)
不是stlink线的问题,拔掉之后还是乱码。
不是杜邦线的问题,换了之后还是乱码。
不是u***转ttl的问题,因为它可以在开发板上进行串口通信,也不是上面的跳线帽的问题,试过了还是乱码。
串口通信三根线就可以了,txd,rxd,gnd. 在开发板上已经验证过了。
程序也没问题,因为换了个u***转ttl就可以了。
反正是尝试了一天,基本上各种调试手段都试过了。
最后是用买来的u***转232的模块调试成功了。
这是最终接口。
这是一个大概流览图。
上面的是最终封装好的模块,后面把485的也封装上去。
这个东西影响因素很多,由于示波器电压表啥的都不在身边,不好从底层检测。但是这个接线是我尝试出来的,有个接口是原理图中根本没有的,但是你不接就是各种乱码。
下面是我尝试过的接法:

当直接接9孔是完全没问题的,可惜的是这个板子做得太精辟了,以至于很多地方都很不方便调试,相当于就是最后成品了。
地线和原理图上的不对应。
今天是最近以来第一次在硬件上停留那么久的时间,非常尴尬。因为理论及其简单,所以按理说不会出什么问题的,结果。。。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分