通过python实现安卓手机与stm32串口通信

编程知识 更新时间:2023-04-04 12:48:04

一、材料

(1)安卓终端1台,本文使用的魅蓝手机

(2)stm32微控制器(可以串口通信的)

二、通信内容

上位机发送AA,熄灭stm32上的LED灯

上位机发送BB,点亮stm32上的LED灯

上位机发送CC,读取电压反馈

在windows系统用串口助手确认stm32通讯正常

三、通讯方法步骤

1、安卓终端安装Pydroid3 ​​​​

2、将stm32连接安卓手机(本文为了用鼠标键盘,还使用了USB3.0HUB集线器)

3、打开 Pydroid3 软件的 Terminal

4、在终端的 /dev 中确认设备,可使用 ls 命令查看设备,本文中为 ttyACM0 (类似windows系统中的 COM8 )

/storage/emulated/0 $ ls /dev

5、安装pyserial:pip install pyserial

/storage/emulated/0 $ pip install pyserial

6、运行com_s.py,/storage/emulated/0/Download 为 com_s.py 文件的路径

python /storage/emulated/0/Download/com_s.py

通过python实现安卓手机与stm32串口通信

更多内容请关注:

钟博士LabVIEW工作室

附录:com_s.py 源码

import binascii
import serial  
import time

def ser_com():
    port = '/dev/ttyACM0'  # 设备:/dev/ttyACM0
    baudrate = 115200  # 波特率
    ser = serial.Serial(port,baudrate,timeout=2)
    if(ser.isOpen()==True):
        print("串口打开成功!\n")    
        while True:
            send_datas = input("请输入要发送的数据:")
            ser.write(bytes.fromhex(send_datas))
            print("已发送数据:",send_datas)
            print("等待接收数据...")
            data = ser.read(ser.in_waiting)
            if data != b'':
                v = str(binascii.b2a_hex(data))[2:-1]
                print("已接受到数据:",data)
                print("电压:",int(v,16)/100)
                print("\n")
                break
            else:
                print("未接受到数据\n")
                #print("已接受到数据:",int(ddd, 16)/100)
        ser.close()
        if ser.isOpen():
            print("串口未关闭!")
        else:
            print("串口已关闭!")
    else:
        print("串口打开异常",exc)

if __name__ == '__main__':
    ser_com()   # 串口

更多推荐

通过python实现安卓手机与stm32串口通信

本文发布于:2023-04-04 12:48:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/5348a89968b5308b542dde2acd768f39.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:串口   通信   手机   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 42451文章数
  • 14阅读数
  • 0评论数