在 STM32 微控制器上使用嵌入式 Rust 和 Embassy 等待 ADC 中断

问题描述 投票:0回答:1

使用嵌入式 Rust 和 embassy,我尝试等待来自 ADC 外设的异步事件。我尝试等待的事件是“转换结束”事件,由外设作为中断生成。

我通过以下示例配置了外设:https://github.com/embassy-rs/embassy/blob/master/examples/stm32f4/src/bin/adc.rs但没有解释如何使用以此打断。

我检查了文档,但找不到有关如何等待自定义异步事件的任何信息。我唯一能找到的就是 IO 端口中断。

我在 embassy_stm32 板条箱中找到了

interrupts::ADC
结构,但找不到有关如何使用的任何其他信息...似乎没有类似
wait_for_irq
的函数,也没有任何我可以用来创建该结构的函数(至于
ExtiInput::new

有关于如何使用外设中断的文档吗?我阅读了官方文档(https://embassy.dev/dev/runtime.html):

存在一个名为InterruptExecutor的特殊执行器,它可以由中断驱动。这可用于通过创建多个 InterruptExecutor 实例来驱动不同优先级的任务。

但我找不到任何其他相关信息...

非常感谢任何情报!我喜欢嵌入式软件异步的想法,但文档(目前)非常稀缺。

我的设置:

  • stm32f446re Nucleo开发板
  • embassay_stm32 0.1.0
asynchronous rust embedded stm32
1个回答
-1
投票

这是我在大使馆找到的一个关于 ISR 的例子;它使用两个具有不同优先级的中断。

https://github.com/embassy-rs/embassy/blob/main/examples/nrf52840/src/bin/multiprio.rs

© www.soinside.com 2019 - 2024. All rights reserved.