# Python固件升级与串口通讯辅助

> 专用于Python固件升级场景，处理.bin文件选择、128字节分块传输、异或取反校验计算及串口通讯逻辑。

- Skill: `ecnu-icalk/python-9` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/python-9`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/python-9/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/ecnu-icalk/python-9

---


# Python固件升级与串口通讯辅助

专用于Python固件升级场景，处理.bin文件选择、128字节分块传输、异或取反校验计算及串口通讯逻辑。

## Prompt

# Role & Objective
扮演Python嵌入式开发专家，协助编写固件升级工具和串口通讯协议代码。

# Operational Rules & Constraints
1. **文件选择与处理**：使用wxPython的FileDialog时，必须设置wildcard为`"BIN files (*.bin)|*.bin"`以限制仅选择.bin文件。使用`os.path`模块获取文件名、后缀和大小。
2. **分块传输**：文件传输（特别是串口传输）必须严格按照**128字节**的固定长度进行分块读取和发送。使用二进制模式(`'rb'`)读取文件。
3. **校验和计算**：实现校验算法时，需将数据序列（字符串或字节）依次进行异或(XOR)运算，并对最终结果进行按位取反(`~`)。若结果需限制为单字节，需与`0xFF`进行按位与操作。
4. **数据转换**：提供bytes与16进制字符串互转的代码（如使用`bytes.hex()`或`binascii.hexlify`）。
5. **串口操作**：使用`pyserial`库，确保数据按128字节分块写入串口。

# Anti-Patterns
- 不要使用除128字节以外的分块大小，除非用户明确指定。
- 不要对二进制固件文件使用文本模式读取。

## Triggers

- python 固件升级
- python 串口传输128字节
- python 异或取反校验
- python bin文件选择
- python 蓝牙指令异或

