《如何制作STM32开发板》之串口

立创EDA,中国自主研发的PCB设计工具,免费使用!云端设计!

一说到串口,大家应该在脑海中出现下面这个画面就对了:

STM32串口规划1

看到没有,这就是正儿八经的串口。在现在的工控机上,和以前的家用电脑上,都有串口,现在的家用电脑上,已经没有串口了。(千万不要把VGA口看成串口,VGA口是15针,串口是9针)

我们要搞单片机,就必须会用串口。所以,开发板上,就必须要有学习串口的功能。

串口的硬件应用,现在最多的有3种:

  1. USB转TTL串口
  2. 232串口
  3. 485通信

在我们的开发板上,把这3种功能都实现。

一、USB转TTL串口

这个功能,在讲程序下载方式的那一篇文章已经讲过了。STM32VET6有5个串口,但是只有串口1可以下载程序,所以我们默认把USART1与CH340G转成的RXD和TXD放到一起。

STM32串口规划2

我们看图,CH340G的2脚和3脚分别是RXD和TXD。同时,单片机上面也有RXD和TXD,那么只需要将CH340G上面的TXD和单片机的RXD连接,就可以在电脑上用“串口调试助手”给单片机发送数据,再把CH340G上面的RXD和单片机的TXD连接,单片机就可以给电脑上的“串口调试助手”发送数据了。

STM32串口规划3

这就是初学者需要注意的,串口的RXD和TXD是“交叉”连接的。这里的“交叉”,是指这个设备的RXD和另一个设备的TXD连接,同理,这个设备的TXD再和那个设备的RXD连接。

(真人真事:有一天,一个小伙伴做两个设备的串口通信,问我怎么就不能收发数据,我说你的RXD和TXD两条线交叉了吗?,他说没有,我说必须要交叉连接才可以。结果,他把两条线扭成了麻花,RXD还是连接到了RXD上面…..还问我要多交叉才可以啊…..)

二、232串口

这种串口,就是文章最上面图片上显示的串口。我们用USART3来学习232串口。用的是SP3232芯片。

STM32串口规划4

232串口和USB转TTL串口的区别:它们的区别就是RXD和TXD引脚电压大小。232和TTL说的是两种电平。作为初学者,一说到电平,大家脑海中就应该有个“高低”的概念。电平属于数字电路的概念,有“高电平”和“低电平”两种。多大电压是高电平,多大电压是低电平,完全是由人决定和规定的。

232电平:+12V表示低电平,-12V表示高电平。(你没有看错,就是这样的)
TTL电平:那要看你的器件供电电压,如果是5V供电,高电平是5V,低电平是0V;如果是3.3V供电,高电平是3.3V,低电平是0V。

看上面SP3232的图,SP3232这个芯片是“TTL电平转232电平”芯片。它的9脚和10脚和单片机的RXD和TXD相连接,9脚和10脚是TTL电平,高低电平分别是3.3V和0V。7脚和8脚是232电平引脚,是可以产生正负12V的引脚,和别的设备的232串口通信。同样是交叉连接。

三、485通信

说到485通信,你的脑海中应当浮现的是A和B两个字母。485通信用的是两条线通信,一条叫做A,一条叫做B,属于差分通信。两台设备,如果用485通信,线是这样连接的:

STM32串口规划5

485通信的距离要比232长,所以485一般用作远距离通信,232一般用作近距离通信。(一般10米以内用232,10米之外到几公里,用485通信。这里的10米,就是个一般数,不要再纠结的问我:“12米可以用232通信吗?”,“对不起,你的情商需要充值了”。)

STM32串口规划6

我们用USART2来做485通信实验,用SP3485芯片,SP3485的1脚连接单片机的RXD,4脚连接单片机的RXD,2脚和3脚是“发送数据”和“接收数据”控制引脚,DE高是发送数据,RE低是接收数据,因为发送数据的时候不能接收数据,接收数据的时候不能发送数据,所以DE和RE的电平,在一种状态下(发送或者接收),电平是一样的。所以把这两个引脚连接在一起,用单片机一个引脚控制就实现了发送和接收。

关于485控制引脚的选择,STM32带485自动控制功能,所以我们用STM32的PA1来控制,PA1有一个复用功能是USART2_RTS,STM32自动485就是用这个引脚控制数据收发。当然,如果我们不用自动收发功能,也可以把PA1当做普通的IO口,然后用写程序控制收发数据。这里就实现了485的两种控制方式,这个功能,好像别的开发板很少有哦。

好了,今天就说到这里,下期再见!

这里是正在直播的《如何做一个STM32开发板》,看以前的文章或者看以后的文章,关注微信公众号:科技老顽童。

点击下载这篇文章:STM32开发板串口的规划


关注我的微信公众号,可以第一时间看到我的文章

微信公众号科技老顽童