我想使用 rust 和 the cortex-m-rt
and crates 为 STM32F3Discovery 板编写一个程序stm32f30x
。更准确地说,我想实现一个我想使用该#[interrupt]
属性的外部中断。但是转出口似乎有问题。
cortex-m-rt 关于中断的文档说该#[interrupt]
属性不应直接使用,而应使用设备箱中的重新导出:
extern crate device;
// the attribute comes from the device crate not from cortex-m-rt
use device::interrupt;
#[interrupt]
fn USART1() {
// ..
}
事实上,stm32f3x crate的文档显示 cortex-m-rt crate 中的这个属性被重新导出。但是,编译:
#![no_main]
#![no_std]
use cortex_m_rt::entry;
extern crate stm32f30x;
use stm32f30x::interrupt;
或者
#![no_main]
#![no_std]
use cortex_m_rt::entry;
use stm32f30x::interrupt;
给出错误
error[E0432]: unresolved import `stm32f30x::interrupt`
--> src\main.rs:9:5
|
9 | use stm32f30x::interrupt;
| ^^^^^^^^^^^---------
| | |
| | help: a similar name exists in the module (notice the capitalization): `Interrupt`
| no `interrupt` in the root
我不知道为什么会发生这种情况,因为我遵循的示例也是如此。我在 Cargo.toml 中的依赖项如下所示:
[dependencies]
stm32f30x = "0.8.0"
cortex-m-rt = "0.6.3"
cortex-m = "0.6.3"
我很感激任何帮助:)