You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MicroPython的put()与get()在Arduino IDE(RP2040)中的等效语法是什么?

Arduino IDE(EarlePhilhower版)中RP2040 PIO的put/get等效语法

在EarlePhilhower的RP2040 Arduino核心中,操作PIO状态机的put和get对应语法如下:

对应MicroPython的sm1.put(myValue)(向PIO状态机传值,匹配PIO的pull()指令)

使用PIOStateMachine类的put()或tryPut()方法:

  • 阻塞式传值(等待状态机准备接收数据):
    sm1.put(myValue); // myValue为要传入的uint32_t类型值
    
  • 非阻塞式传值(立即返回,不等待,可判断是否成功):
    bool isSuccess = sm1.tryPut(myValue);
    if (isSuccess) {
        // 数据已成功写入状态机的TX FIFO
    }
    

对应MicroPython的newValue = sm1.get()(从PIO状态机取值,匹配PIO的push()指令)

使用PIOStateMachine类的get()或tryGet()方法:

  • 阻塞式取值(等待状态机推送数据):
    uint32_t newValue = sm1.get();
    
  • 非阻塞式取值(立即返回,检查是否有可用数据):
    uint32_t newValue;
    bool hasData = sm1.tryGet(&newValue);
    if (hasData) {
        // 已成功从状态机的RX FIFO读取到值
    }
    

前置说明

使用前需确保已完成PIO程序加载和状态机初始化,示例代码:

// 假设已定义汇编好的PIO程序(如my_pio_program)
PIO pioInstance = pio0; // 选择pio0或pio1
uint programOffset = pio_add_program(pioInstance, &my_pio_program);
// 初始化状态机1,指定程序偏移量和时钟频率
PIOStateMachine sm1(pioInstance, 1, programOffset, 1000000);
sm1.start(); // 启动状态机

内容的提问来源于stack exchange,提问作者RonK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 02:29:56