打印

串口的秘密

[复制链接]
725|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
大家都知道,单片机可以通过串口跟电脑的串口 通信。
那么电脑上怎么编程实现串口上位机功能跟单片机通信呢?
也许大家都觉得很复杂,因为电脑的串口跟单片机的不同的。
图形化的编程中可以使用一些控件或者串口动态链接库之类的实现串口通信。
其实编程语言本身的基础库已经实现了,我们之前不知道而已。
今天就以Python来讲。
在网上搜索Python的串口通信资料,会发现都是要导入一堆人家写好的库。
其实呢,基础的Python核心已经帮我们实现好了。
我们都知道文件操作这个基本概念吧,Python本身就实现了,另外对于我们熟悉的C语言也是,基本输入输出库已经实现了文件的读写。
言归正传,这里讲Python。
我们看一个Python的文件操作例子
#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 打开一个文件
fo = open("foo.txt", "w")
print "文件名: ", fo.name

# 关闭打开的文件
fo.close()
我们注意到,通open()就可以打开一个文件,其实端口对于系统来说也是一个特别的文件,是有固定名字的。比如串口1,就是COM1
我们测试这个假设。我们先使用虚拟串口驱动在电脑上搞出来个串口

这里只有名字表示创建成功了,还没有被操作。我们仿照上面操作文件的函数来操作这个串口试试看。

我们注意到,Python没有报错,说明语法上没问题,找到了COM1,另外看串口工具,发现这里显示了配置,说明被成功的操作了。
同样的方式操作COM2

那么有人说巧合了,那我同样操作一个不存在的COM3

发现不行,这说明一个问题:open文件操作确实是可以操作串口的。


使用特权

评论回复

相关帖子

沙发
gaoyang9992006|  楼主 | 2019-3-31 18:58 | 只看该作者
现在我让串口1不停的发送,让串口2接收。看看能否通信

当然可以,哈哈,成功了。12表示每次发送了12个字符。

使用特权

评论回复
板凳
gaoyang9992006|  楼主 | 2019-3-31 19:01 | 只看该作者
本帖最后由 gaoyang9992006 于 2019-3-31 19:04 编辑

上面的测试代码
COM1fo=open("COM1","w+")
while(1): fo.write("This is COM1")

---------------------------------------
COM2
fi=open("COM2","w+")
while(1): fi.read(12)

使用特权

评论回复
地板
gaoyang9992006|  楼主 | 2019-3-31 19:04 | 只看该作者
同样的操作方式我们可以用到C 和C++上,直接用文件操作的方式操作串口。

使用特权

评论回复
5
gaoyang9992006|  楼主 | 2019-3-31 19:08 | 只看该作者
以上没有进行波特率和格式设置,大家想想该怎么用基础函数设置波特率呢?

使用特权

评论回复
6
飞翔的鱼2019| | 2019-7-2 17:16 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:西安公路研究院南京院
简介:主要工作从事监控网络与通信网络设计,以及从事基于嵌入式的通信与控制设备研发。擅长单片机嵌入式系统物联网设备开发,音频功放电路开发。

1971

主题

15978

帖子

210

粉丝