| **银杏科技有限公司旗下技术文档发布平台** |||| |技术支持电话|**0379-69926675-801**||| |技术支持邮件|Gingko@vip.163.com||| ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | V1.0 | 2020-06-15 | gingko | 初次建立 | ===== 例程五:【micropython】UART串口通讯——通过命令控制LED ===== ==== 一、实验目的 ==== 使用micropython控制iCore3的串口通信,并用命令控制LED。 ==== 二、实验设备及平台 ==== - iCore3双核心板[[https://item.taobao.com/item.htm?id=524229438677|点击购买]] - Micro USB线 - 电脑 ==== 三、实验原理 ==== 开发板上自带一片CH340芯片,本实验需要电脑安装CH340驱动,CH340的TXD连接开发板的GPIO(PA1),CH340的RXD连接开发板的GPIO(PA0),通过串口发送命令控制LED的亮灭。原理示意图如下所示: {{ :icore3:icore3_micropython_5_1.png?direct&600 |}} ==== 四、实验步骤 ==== - 用数据线将iCore3的USB-OTG口与电脑相连; - 打开PYBFLASH磁盘,将代码包中的main.py文件替换到PYBFLASH的main.py,弹出磁盘; - 用数据线将iCore3的USB-UART口与电脑相连,将供电跳帽选择为UART供电,将iCore3重新上电,代码运行; - 打开串口调试器,选择端口号COM4(具体请在此电脑右击->管理->设备管理器中查看),波特率9600,数据位8,停止位1,校验位None。点击打开串口进行连接; - 命令表如下: |1 |LEDR_ON |红灯亮| |2 |LEDR_OFF |红灯灭| |3 |LEDG_ON |绿灯亮| |4 |LEDG_OFF |绿灯灭| |5 |LEDB_ON |蓝灯亮| |6 |LEDB_OFF |蓝灯灭| ==== 五、实验现象 ==== 发送“LEDR_ON”命令,会接受到相同的字符,并且开发板上红灯亮;发送“LEDR_OFF”命令,会接受到相同的字符,并且开发板上红灯灭; {{ :icore3:icore3_micropython_5_2.png?direct |串口通信界面}} ==== 六、实验程序 ==== # -*- coding: utf-8-*- # main.py -- put your code here! from pyb import UART #导入串口库 #定义串口4对象,波特率9600 U4 = UART(4,9600) while True: re = U4.readline() #缓冲区读取一行内容 if re != None: #若内容不为空 pyb.delay(10) #延时10ms,等内容接受完整 re = re + U4.readline() #将内容合并 U4.write(re) #将接收到的内容再发回给串口 if re == b'LEDR_ON': #控制命令匹配 pyb.LED(1).on() elif re == b'LEDR_OFF': pyb.LED(1).off() elif re == b'LEDG_ON': pyb.LED(2).on() elif re == b'LEDG_OFF': pyb.LED(2).off() elif re == b'LEDB_ON': pyb.LED(3).on() elif re == b'LEDB_OFF': pyb.LED(3).off()