一、材料

(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串口通信