卢骏 · 2020年07月21日

单片机之串口仿真(proteus加虚拟串口)

在proteus可以仿真串口,但是用它自带的终端不能显示字符,只能显示16进制值,而且不能输入信息。

所以,就考虑使用虚拟串口,然后用串口调试助手。

首先是搭建电路图:
1.jpg
电路图很简单,就一个单片机,和一个COMPIN,集成电平转换的穿行通信接口,这个接口自带电平转换,所以外面不需要电平转换芯片。

这里要注意,单片机的TXD和接口的TXD相连,单片机的RXD和接口的RXD相连。
2.png
将单片机的时钟频率设置为11.0592M,不能为12M,否则串口调试助手接收不到数据。

然后对接口设置一下
3.png
第一个physical port是设置这个接口的COM口。这里设置为COM3。

下面是设置串口的一些相关信息。要注意下面的虚拟串口的值要和上面的值一样。

然后打开虚拟串口。
4.jpg
选择添加串口对。
5.jpg
在左边就会出现一对串口,这两个串口是相连的。。

我们需要将串口助手的COM端口设置为COM2。因为之前在proteus已经将串口接到COM3了。

这样,就将串口调试助手和proteus中的串口连接起来了。

打开串口
6.jpg

选择COM2。设置串口的相关信息。

然后在proteus中点击开始仿真。
7.jpg
这样,就会看到串口中有接收到hello world。

发送一串字符,然后单片机会将接收到的字符原样返回回来。

我的程序是,开始发送hello world。然后串口接收到什么数据,就把接收到的数据原样发回去。

这样,就实现了串口助手和proteus的串口连接。以后使用串口就方便多了。

这里要注意的是,两边的COM口要选择对。

虚拟串口会生成一对COM口。然后将串口调试助手指向一个COM口,Proteus的串口接口指向另外一个COM口。这样就实现了两边的相互连接。

有时候,开始的时候,串口正常工作,但是到了后面,就不正常工作。串口调试助手不能收到数据,也不能发数据。这个时候,就需要将proteus软件关闭,然后把虚拟串口的串口对删除掉,重新生成一对,然后在打开proteus软件。就可以了。

另外还有一点需要注意,在proteus中不能放置自带的终端的,否则是不能接收到数据的。

系列其他篇

原文首发于骏的世界博客
作者:卢骏.
更多Arm技术相关的文章请关注Arm技术博客极术专栏,每日更新。
推荐阅读
关注数
23361
内容数
884
Arm相关的技术博客,提供最新Arm技术干货,欢迎关注
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息