实现Python与STM32通信方式

 更新时间:2019年12月18日 16:14:56   作者:BelingBeling  
今天小编就为大家分享一篇实现Python与STM32通信方式。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

断断续续学了几周Stm32后,突然想实现上位机和下位机的通信,恰好自己学过一点python,便想通过python实现通信.

在网上看见python库pyserial可以实现此功能,便去官网找了一下 ,附上官网pyserial档链 接:https://pyserial.readthedocs.io/en/latest/pyserial.html#overview

首先在windows的CMD命令管理器中安装pyserial,直接在CMD中键入如下字符

pip install pyserial

再将Stm32用USB连接到电脑,打开设备管理器显示端口为COM14,然后在python中写下

import serial
 
#连接串口
serial = serial.Serial('COM14',115200,timeout=2) #连接COM14,波特率位115200
if serial.isOpen():
 print ('串口已打开')
else:
 print ('串口未打开')
 
 
 
#关闭串口
serial.close()
 
if serial.isOpen():
 print ('串口未关闭')
else:
 print ('串口已关闭')

运行后出现下图,记住在代码要在最后要用 serial.close() 函数去关闭串口,否则下次会打不开串口,会报错.

之后我们在Stm32的代码中写入如下示例代码,模板来自正点原子的示例代码:

while(1)
 {
 if (USART_RX_STA&0x8000)
 {
 len = USART_RX_STA&0x3FFF;
 for (t=0;t<len;t++)
 {
 USART_SendData(USART1,USART_RX_BUF[t]);
 while (USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
 }
 USART_RX_STA=0;
 }
 else
 { 
 times++;
 if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
 delay_ms(10); 
 }
 }

该32的代码实现的功能为USART接受数据并返还给发送数据方.

在python编译器中写下数据接收与发送的完整代码:

import serial
 
#连接串口
serial = serial.Serial('COM14',115200,timeout=2)
if serial.isOpen():
 print ('串口已打开')
 
 data = b'Beking\r\n' #发送的数据
 serial.write(data)  #串口写数据
 print ('You Send Data:',data)
 
 while True:
 data = serial.read(20) #串口读20位数据
 if data != b'':
 break
 print ('receive data is :',data) 
 
else:
 print ('串口未打开')
 
 
 
#关闭串口
serial.close()
 
if serial.isOpen():
 print ('串口未关闭')
else:
 print ('串口已关闭')

运行结果为下图,发送的数据为 b'Beking\r\n' 接收数据为 b'Beking' .( 在正点原子的数据接受数据中要有\r\n字符,否则会接收不到(可以在代码中更改))

如此就可以实现python与Stm32的简单数据接发,要是想实现更为复杂,更为实用的上位机与下位机通信,可以参考文首给出的pyserial文档链接.

以上这篇实现Python与STM32通信方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python搭建服务器实现两个Android客户端间收发消息

    python搭建服务器实现两个Android客户端间收发消息

    这篇文章主要为大家详细介绍了python搭建服务器实现两个Android客户端间收发消息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Pycharm最新激活码2019(推荐)

    Pycharm最新激活码2019(推荐)

    这篇文章主要介绍了Pycharm最新激活码2019,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • TensorFlow安装及jupyter notebook配置方法

    TensorFlow安装及jupyter notebook配置方法

    下面小编就为大家带来一篇TensorFlow安装及jupyter notebook配置方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 在arcgis使用python脚本进行字段计算时是如何解决中文问题的

    在arcgis使用python脚本进行字段计算时是如何解决中文问题的

    这篇文章主要介绍了在arcgis使用python脚本进行字段计算时是如何解决中文问题的,需要的朋友可以参考下
    2015-10-10
  • python中pip无法正确安装或路径出错的解决方案

    python中pip无法正确安装或路径出错的解决方案

    这篇文章主要介绍了python中pip无法正确安装或路径出错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python基于stuck实现scoket文件传输

    Python基于stuck实现scoket文件传输

    这篇文章主要介绍了Python基于stuck实现scoket文件传输,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • python把ipynb文件转换成pdf文件过程详解

    python把ipynb文件转换成pdf文件过程详解

    这篇文章主要介绍了用python把ipynb文件转换成pdf文件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 超详细注释之OpenCV制作图像Mask

    超详细注释之OpenCV制作图像Mask

    这篇文章主要介绍了OpenCV制作图像Mask,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Python hashlib模块加密过程解析

    Python hashlib模块加密过程解析

    这篇文章主要介绍了Python hashlib模块加密过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Python 设计模式中命令模式

    Python 设计模式中命令模式

    这篇文章主要介绍了Python 设计模式中的命令模式,命令模式的目的是解耦调用操作的对象和提供实现的对象,下文介绍具有一定参考价值,需要的小伙伴可以参考一下
    2022-02-02

最新评论