在编译之前,首先当然是要确定目标开发板的硬件,比如这里要告诉 rust 我们希望生成 stm32f103 的目标(thumbv7em-none-eabi),而这个是在项目根目录 .cargo/config 文件里指定的,当然也可以编译的时候用命令行参数传进去 --target=thumbv7em-none-eabi [build] target = "thumbv7m-none-eabi" 虽然现在指定了 MCU ...
五、Rust在STM32F103中的应用 5.1 初识“Cortex-M”开发 5.1.1 理解Cortex-M架构 5.1.2 RTIC库和宏的使用 5.2 完成一个LED闪烁的例程 5.2.1 GPIO控制和配置 5.2.2 Rust中的延时功能 5.3 使用外部中断实现按钮控制 5.3.1 中断处理和回调函数 5.3.2 操作外部中断线 六、高级主题 6.1 外设驱动与通信 6.1.1 ...
Rust stm32f103嵌入式开发环境搭建 1.首先需要在电脑上安装rust,rust安装网址。windows系统需要在电脑安装vs软件,才能正常使用rust。 2.将rust配置国内源,编辑用户名/.cargo/config文件中添加: 点击查看代码 [source.crates-io]registry="https://github.com/rust-lang/crates.io-index"replace-with='tuna'[source.t...
//"executable":"./target/thumbv7em-none-eabihf/debug/examples/itm", "device":"STM32F103ZE", "configFiles": [ "${workspaceRoot}/openocd.cfg" ], "svdFile":"${workspaceRoot}/STM32F103.svd", "gdbPath":"/usr/local/gcc-arm-none-eabi/bin/arm-none-eabi-gdb", "showDevDebugOutput":"raw...
因为STM32F103只有TIM1,我又要用时钟中断,所以我就去掉了,初始化时只使用:init::Monotonics()。 串口 我用的是USART1,gpio管脚是pa9/pa10,没有使用DMA【被rust折腾惨了,暂时还搞不定】就是中断收发。 let mut afio = cx.device.AFIO.constrain(); ...
RUST嵌入式开发 目标设备:stm32f103RCT6 环境:rust,vscode,openocd。vscode需要安装cortex-Debug,rust-analyzer,Even Better TOML。 烧录工具:DAPlink 步骤 1.下载例程库 从github搜索 RUST STM32 ,会出现 2.安装依赖 我们需要安装gcc-arm-none-eabi和openocd。
所以 rus 组成常用的就是 rustup 管理工具链,cargo 开发项目。Rust on STM32F103 首先介绍一下如何在 ...
features = ["rt", "stm32f103", "medium"] 这个时候可以运行以下cargo build 来让Rust自动安装一下相关依赖,然后随着滚动应该就安好了。 我们注意到显然运行出来的东西target\debug内不包含我们想要的可以直接烧录的程序文件。 所以我们需要调成cargo的编译方法:新建.cargo\config文件,无后缀 ...
Rust主要由编译器rustc、软件包管理器cargo、工具链管理器rustup组成。cargo能提供项目创建、编译、运行等便利功能。rustup则负责管理rust的工具链,如编译器、运行环境等,这对于使用Rust进行嵌入式开发尤为重要。通过rustup,用户可以安装所需的运行环境(Runtime)以适应不同指令集架构的设备。以STM32F103...
原型开发:快速构建和测试原型,便于验证想法和项目。 各个层级的关系: 硬件平台:STM32F103微控制器, GPIO,I2C,SPI等 Peripheral Access Crate (PAC):直接访问 STM32F103 的硬件寄存器 Hardware Abstraction Layer (HAL):封装 PAC 提供的底层接口,提供更简单、更高层的 API embedded-hal:跨平台通用接口层 ...