100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Python上位机与C51单片机串口通信

Python上位机与C51单片机串口通信

时间:2022-02-08 03:39:43

相关推荐

Python上位机与C51单片机串口通信

【Python串口通信理解】

【Python串口通信指令】

Python3以上串口通信需要安装pyserial包,我用到的操作比较简单,涉及串口打开、写数据、读数据、关闭串口等操作。

串口打开:ser=serial.Serial(端口名,波特率,……)

写数据:ser.write(内容.encode('utf-8'))

读数据:ser.read(1)

关闭串口:ser.close()

【Python上位机代码】

import easygui as guiimport sysimport serial#代码行执行打开串口及发送内容时,打开串口与发送内容之间要间隔0.5秒以上,不然无法发出内容def main():stflag='s'gui.msgbox('上位机程序:波特率4800,COM5')ser = serial.Serial('COM5', 4800)if box('确定开始吗', '启动',choices=['确定','取消']):if ser.isOpen():ser.write(stflag.encode("utf-8"))#发送信息编解码可以utf-8,也可以使用ascii编码_=ser.read(1)#初次读取串口为0,第一次读取删去rec = ser.read(1)print(rec.decode("utf-8"))else:print('串口未正常开启')sys.exit(0)else:ser.close()sys.exit(0) # 选择取消,退出程序if __name__ == "__main__":main()

【C51代码】

#include <REGX52.H>void UART_Init()//4800 @11.0592 波特率不加倍{PCON |= 0x80;SCON = 0x50;TMOD &= 0x0F;TMOD |= 0x20;TL1 = 0xF4;TH1 = 0xF4;ET1 = 0;TR1 = 1;EA=1;//允许中断ES=1;}void UART_SendByte(unsigned char Byte){SBUF=Byte;while(TI==0);TI=0;}unsigned char serialflag=0;//定义串口交互成功标志位void main(){UART_Init();while(1){}}void UART_Routine() interrupt 4{if(serialflag==0)//初次接收上位机启动交互信息{if (SBUF==0x73){P1=0x00;UART_SendByte('y');serialflag=1;}}else P1=SBUF;//标志位变更,后续连续接收上位机信息RI=0;}

参考链接:

python库之pyserial用法,pyserial和serial的区别_Electrical_IT的博客-CSDN博客_pyserial

Python 实现串口调试助手_felix_fang_xin的博客-CSDN博客_python 串口助手

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。