2857|0

1万

帖子

25

TA的资源

版主

楼主
 

CircuitPython与micropython的主要区别 [复制链接]

 

虽然 CircuitPython 是从 micropython 中分叉出来的,但是随着各自的不断发展,两者之间的差异也越来越多。它们之间的主要区别是:

 

CircuitPython

  • 在所有板上都支持本机USB,无需特殊软件即可编辑文件。

  • 所有版本都启用浮点数(即小数)。

  • 错误消息被翻译成10多种语言(中文是拼音)。

  • 不支持Python中的并发功能(包括中断和线程)。对于需要它的任务(如音频文件播放),本地模块可以实现一些并发性。

 

行为

  • 文件的运行顺序以及它们之间共享的状态。CircuitPython的目标是明确每个文件的作用,并使每个文件相互独立。

  • boot.py (or settings.py)在USB初始化之前仅运行一次。这为在启动时配置USB而不是修复它奠定了基础。因为此时串口不可用,所以输出被写入文件 boot_out.txt。

  • code.py (or main.py)在每次重新加载后运行,直到完成或中断。运行完成后,虚拟机和硬件将重新初始化。这意味着您无法在REPL中读取code.py运行状态。circuittpython的目标是减少对管脚和内存使用的混淆。

  • code.py运行完成后可按任意键进入REPL。它不再与REPL共享code.py状态,所以这是一个新的虚拟机。

  • 自动加载状态将在整个重新加载过程中保持。

  • 添加一个安全模式,在硬崩溃或掉电后不再运行用户代码。在崩溃后通过大容量存储更容易修复导致严重崩溃的代码。修复后通过复位回到正常模式。

  • RGB LED指示CircuitPython 状态,通过不同色彩指示电路状态和错误。

  • 在文件写入USB大容量存储后重新运行code.py或其他主文件。(使用supervisor.disable_autoreload()禁用)

  • 在主代码完成后需要通过按键进入REPL,并禁用自动加载。

  • 主程序可以是这几个文件其中之一:code.txt, code.py, main.py, main.txt

  • 引导文件可以是这几个文件其中之一:settings.txt, settings.py, boot.py, boot.txt

 

API

  • 统一的硬件API。文档在ReadTheDocs上。

  • API文档在shared-bindings中和C 文件共享。

  • 没有machine API。

 

模块

  • 无模块别名。(uos和utime不能分别作为os和time使用。)相反,os、time和random 是与 CPython 兼容的。

  • 新的 storage 模块管理文件系统装载。(来自 MicroPython 中 uos 的功能)

  • 与CPython对应的模块,如time、os和random,是CPython版本的严格子集。因此,CircuitPython的代码可以在CPython上运行,但反过来则不一定。

  • time.monotonic() 函数用于tick 计数器

点赞 关注(1)
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表