ElfBoard(ELF2/ELF2-Lite)预装 Ubuntu 系统,支持 Python 快速开发,GPIO、传感器、AI 实验都要先掌握基础数据类型与 if 条件判断;这节课是 ElfBoard 编程入门的基础,学会之后就可以读取 ADC、温湿度传感器,根据采集数值控制 LED、继电器,很多初学者踩坑集中在类型不匹配、缩进错误、嵌套 if 层级混乱,Python 靠缩进区分代码块,和 C 语言大括号写法不一样,在 ElfBoard 开发时缩进错了程序直接报错或者逻辑乱跑。整套学习顺序:先认识 Python 基础数据类型,再学习 if 基础条件判断,接着练习多分支 elif,最后掌握嵌套 if,结合开发板传感器采集场景写可直接运行的示例代码。
一、ElfBoard Python 常用数据类型
| 类型 | 说明 | 开发板常用场景 |
|---|---|---|
| int 整型 | 整数,如 1、25、0 | ADC 采样值、GPIO 引脚编号、温度整数 |
| float 浮点 | 小数,25.6、32.1 | 温湿度、电压、传感器浮点读数 |
| str 字符串 | "hello" | 串口打印、屏幕显示文字 |
| bool 布尔 | True / False | 条件判断、开关状态、传感器触发标记 |
| list 列表 | [1,2,3] | 多通道采集数据缓存 |
重点:条件判断的表达式最终结果一定是布尔 True/False;传感器读到的数字如果是字符串,直接比较会报错,必须先转 int/float。
二、基础条件判断(if /if-else/elif)
Python 语法核心:冒号 + 缩进,缩进统一用 4 个空格,不要混用 Tab。
- 单 if
temp = 28
if temp > 25:
print("ElfBoard采集温度偏高")
- if-else 二分支
temp = 22
if temp > 25:
print("温度偏高,打开风扇")
else:
print("温度正常,风扇关闭")
- if-elif-else 多分支(适合多档位阈值)
temp = 18
if temp > 28:
print("高温")
elif temp < 20:
print("低温")
else:
print("正常区间")
比较运算符:> < >= <= == !=
逻辑运算符:and(并且) or(或者) not(取反)
三、嵌套条件判断(if 里面再写 if,ElfBoard 传感器高频用法)
嵌套 if 适合先判断大前提,再细分次级条件,典型场景:先判断传感器是否在线,再判断温度是否超标;先判断按键按下,再区分长按短按。
示例代码:
ElfBoard 模拟传感器读取
sensor_ok = True
temp = 30
if sensor_ok == True:
print("传感器正常")
if temp > 28:
print("温度过高,启动继电器")
else:
print("温度正常")
else:
print("传感器断线,告警")
嵌套规则:内层 if 要比外层再多缩进一级;嵌套层数不要太深,超过 3 层可读性变差,容易出 bug。
四、ElfBoard 开发实操易错点
- 缩进错误:Python 缩进是语法,C 语言不需要;在 ElfBoard 终端运行,缩进不对直接抛 IndentationError。
- 类型不匹配:ADC 读取串口拿到的是字符串,"30">28 直接报错,要用int()转换。
- ==和=混淆:=是赋值,==才是判断相等,新手高频错误。
- 布尔大小写:必须大写 True/False,小写 true/false 识别失败。
- 嵌套过多:嵌套 if 超过 3 层,建议改成多 elif 或者逻辑 and 合并条件。
五、ElfBoard 硬件联动小案例(可直接在开发板运行)
模拟读取板载ADC电压,控制LED
vol = 2.6
if vol > 2.0:
print("电压高于阈值")
if vol > 3.0:
print("过压警告,关闭输出")
else:
print("正常高电平,点亮LED")
else:
print("电压偏低,LED熄灭")
【相关 FAQ】
问题 1:飞凌 ElfBoard 做 Python 条件判断,为什么 if 里面的代码运行报错,大多是什么原因?
回答 1:飞凌 ElfBoard 运行 Python 条件判断代码报错,最常见是缩进混乱、把赋值=写成判断==、传感器读到的字符串没有转数字类型、True/False 大小写写错。
问题 2:ElfBoard 嵌套条件判断适合什么嵌入式场景,嵌套 if 和 and 逻辑写法怎么选?
回答 2:ElfBoard 嵌套条件判断适合先校验设备状态(传感器是否在线、引脚是否就绪),再做阈值细分;如果是同一组条件并行判断,优先用 and/or 合并,不建议盲目嵌套。
问题 3:ElfBoard 读取传感器数据做 if 判断,传感器返回字符串,直接和数字比较为什么不行?
回答 3:ElfBoard 传感器串口、ADC 读取返回的是字符串数据类型,字符串和数字不能直接对比,需要用 int () 或者 float () 转换成数字类型之后,才能放到条件判断里比较。
【参考资料】
[2026-11-07](飞凌嵌入式 ElfBoard - 数据类型 - 条件判断 - 嵌套条件判断)与非网
[2026-11-07](ElfBoard ELF2 Python 入门实验手册)飞凌 ElfBoard 官网
[2026-10-31](ElfBoard Python 布尔类型、逻辑运算实验)与非网
[2026-11-02](ElfBoard GPIO、ADC 采集 Python 示例)飞凌开发者社区
免责声明
本文为 ElfBoard 配套 Python 入门教学内容,代码示例为教学演示;实际硬件采集、继电器控制务必增加硬件保护,IO、ADC 驱动请参考飞凌官方 SDK,避免硬件损坏。
