python实现串口通信,python界面编程和串口通信
能通信-使用大蟒发送和接收能数据的配置环境1 .环境配置1.1安装能通信所需的软件包1.2千伏激光_驱动程序和Kvaser Canhpdz 2安装。大蟒发送和接收数据2 2.1.1接收数据代码2.1.2发送数据代码2.2的验证发送ser Can hpdz接收数据2.2python发送数据2.3.1kvasercanhpdz发送数据2.3.2python发送
设定环境
使用环境:python3.6
平台:窗口10
IDE:PyCharm
1 .环境配置1.1加拿大通信所需的软件包pipinstallcanlib 1.2 kva ser _ drivers和Kvaser Canhpdz要在官方网站上安装这些软件,请访问ser.com https://号
官方网站是英语,虽然看起来有点辛苦,但这里也展示了云连接:
链接:https://潘。Baidu.com/s/1 ldkyilov 0k y4 D2 qxrylzgq
抽屉代码:vwiv
下载后的文件是这样的。按顺序双击三个文件安装即可
安装完成后,可以确认在开始栏中进行了安装
使用计算机编程语言的数据收发2.1收发数据代码如下。 2.1.1接收数据代码#作者:飓风#日期33602021/4/12 #文件3360 can _ receive.py #电子邮件:hurri _ cane @ QQ。comimportsysfromcanlibimportcanlibdefprint _ frame(frame): printsamessagetoscet错误帧已接收(* *)、else:print)({ id 336008 x } { DLC } { data } { timestamp }).FLC }数据=" .时间戳=帧。timestamp()if _ name _= _ _ main _ :# initializationchannel _ number=0 # specificcanlibchannelnumbermaybespecifiedasfirstargumentiflen(sys .argv(=2:通道号=int(sys。argv))ta(%)(通道号)print( % d . % s)%))通道号,ch数据。通道通道数据。card _ serial virtualchannelsareconsidedoktousech=can lib。开放频道(channel _ oktousech(chan lib。开放频道).canlib .CANopen _ accept _ virtual(print(设置为500 kb/s)ch。setbusparams)可以lib。can bitrate _ 500 startlisteningformessagefinished=false print(iddlcdatastimestamp)while ng finished)3360 print _ frame(frame)except(can lib。can nomsg)asex:pass except(can lib。can错误)asex:print)
数据代码#作者:飓风#日期:2021/4/12 #文件:CAN _ send。py #邮箱:hurri _ cane @ QQ。com从canlib导入sys导入CAN lib,Framechannel_number=1#可以将特定的罐头lib通道号指定为第一个参数if len(sys。argv)==2:通道号=int(sys。argv[1])print( open channel % d %(channel _ number))#使用通道数据获取有关所选通道chd=canlib的一些信息频道数据(频道号)打印( % d . % s(% s/% s) %(频道号,chd .频道名,chd.card_upc_no,CHD . card _序列号))#如果频道有自定义名称,请打印itif chd.custom_name!= :打印(自定义通道名称:% s“%(CHD . custom _ name))#打开能通道,虚拟通道被认为可以使用ch=canlib。开放频道(Channel _ number,canlib。CANopen _ ACCEPT _ VIRTUAL)print(将比特率设置为500千字节/秒)。setbusparams(canlib。canbitrate _ 500k)print(上车)ch。buson()打印(发送消息)frame=Frame(id_=123,data=[1,2,3,4注:发送数据代码是发送这样的一帧数据:
编号是123,长度为8的能帧
PS:这里面的信息可以自行修改,符合能帧的规则就行
frame=Frame(id_=123,data=[1,2,3,4,5,6,7,8],dlc=8,flags=0) 2.2验证发送数据验证是否发送成功,只需要看到有没有接收到数据就行了,本文通过智维提供的软件来测试是否接收到数据。
当然也可以通过上文提到的接收数据的代码,这个在后文会提到。
2.2.1使用Kvaser Can hpdz接收数据打开CAnhpdz软件(此软件在1.2节已经提供安装包)
将CAN通道设置为0,波特率设置为500K,点击Go On Bus按钮,此时CAN通道0打开,右边的输出框可以显示发送和接收的数据。
2.2.2使用Python发送数据,运行2.1.2的Python文件。
你可以看到一旦代码运行,Kvaser Can hpdz将接收一帧数据。
2.3验证收到的数据。2.3.1使用Kvaser Can hpdz发送数据。按照2.2.1中的方法打开CAnhpdz软件。
将CAN通道设置为0,波特率设置为500K,点击Go On Bus按钮,此时CAN通道0打开,右边的输出框可以显示发送和接收的数据。
如下图所示,打开通用按钮。
点击后会打开消息对话框,可以根据图示输入信息。
电机发送将发送CAN帧。
2.3.2使用Python收发数据,运行2.1.1的Python文件。
可以看到,每次点击发送,Python代码都会收到一帧数据。
2.3代码间发送和接收数据:为了同时显示发送方的代码运行结果、接收方的代码运行结果和CAN hpdz接收到的结果,我们在cmd中运行接收方的代码;使用效果如下:
3.参考Python Canlib文档
file:///D:/Program Files(x86)/kvaserCAN/can lib/python/pycanlib/docs/index . html
4.结论如果本文对你有帮助,请点赞收藏一键带走。你的支持是我最大的动力!()
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。