1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
Python代码如下:
import os # 导入os模块,处理操作系统相关事务 import serial # 导入serial模块,串口通信相关 com = serial.Serial('COM4', 9600) # 打开指定串口,设置串口通信波特率 def rec_data(): # 接收数据函数 while True: # 循环检测 a = com.read() # 从串口接收数据,类型为bytes b = int(a.hex(), 16) # 将接收的数据转化为16进制数字型,注意是数字型,不是字符串型 if b == 0xff: # 按照自己的要求进行条件判断 print("成功接收数据!") # 执行内容 rec_data() # 调用函数 ''' # 代码功能:通过串口从51单片机接收一个16进制数 # 注: 1. 第4行代码中的"com4"需改成自己51单片机连接电脑的串口号,不一定是com4,不要照搬 2. 第2行的serial模块不是Python自带的,需要自行安装。 (1). cmd命令行安装命令:pip install pyserial (2). Pycharm安装:去Pycharm标准库安装窗口,搜索pyserial安装 3. 第4行的波特率需要与51单片机端波特率设为一致,否则会导致数据接收失败或出错 # 操作系统环境:Win10 1909 # Python环境:Python3.8.6 ''' 51单片机代码: #include ***it button=P3^4; // 定义了愚者51单片机开发板上的一个按钮,用作发送数据的触发条件 void main() { TMOD=0X20; // 设置定时器1工作于方式2 TH1=0XFD; // 设置串口通信波特率为9600 TL1=0XFD; TR1=1; // 开启定时器1,用以产生波特率 REN=1; // 打开串行中断允许 SM0=0; // 设置串行口工作于方式1 SM1=1; if(button==0) // 按下按钮的情况下 { SBUF=0XFF; // 发送数据0XFF if(TI==1) // 判断数据是否发送完,如果发送完将发送完成标志位软件置0 TI=0; } } /* // 代码功能:按下按钮,单片机通过串口向PC端发送一个16机制数(0XFF) // 注:本代码的作用主要是开发者提供基本思路,实际应用还不够完善,比如对按钮的检测缺少松手检测等等。 */ 注:本套教程使用的Python编辑器均为Pycharm,关于波特率的概念请见本工作室推出的“计算机软硬件知识”文集《波特率和比特率的概念》一文。 |
|
|
|
只有小组成员才能发言,加入小组>>
2553 浏览 0 评论
1152浏览 2评论
750浏览 1评论
503浏览 0评论
269浏览 0评论
433浏览 0评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 11:58 , Processed in 1.115723 second(s), Total 48, Slave 40 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号