STM32F103 开发板 Rust 语言教程

STM32F103 开发板 Rust 语言教程

stm32f103-tutorial stm32f103-tutorial 项目地址: https://gitcode.com/gh_mirrors/st/stm32f103-tutorial

项目介绍

本项目是一个关于 STM32F103 开发板的使用案例,记录了一些使用 Rust 语言进行学习嵌入式开发的示例。该教程将主要根据 B 站江科大的视频教学进行学习 Rust 语言的嵌入式开发,示例中将会借用 B 站江科大视频配套资料中的一些资源进行展示。同时也会结合 stm32f1xx-hal 开发板库中的示例,进行整合在一起学习。

项目快速启动

环境准备

  1. 安装 Rust 工具链

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
  2. 安装嵌入式开发工具链

    rustup target add thumbv7m-none-eabi
    
  3. 安装 OpenOCD 和 GDB

    sudo apt-get install openocd gdb-multiarch
    

克隆项目

git clone https://github.com/silent-rain/stm32f103-tutorial.git
cd stm32f103-tutorial

编译项目

cargo build

烧录程序

使用 OpenOCD 烧录程序到 STM32F103 开发板:

openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "program target/thumbv7m-none-eabi/debug/stm32f103-tutorial verify reset exit"

应用案例和最佳实践

基础示例

Hello World

在 STM32F103 开发板上实现一个简单的 LED 闪烁程序:

#![no_std]
#![no_main]

use panic_halt as _;
use stm32f1xx_hal::{prelude::*, stm32};

#[entry]
fn main() -> ! {
    let dp = stm32::Peripherals::take().unwrap();
    let mut rcc = dp.RCC.constrain();
    let mut gpioc = dp.GPIOC.split(&mut rcc.apb2);

    let mut led = gpioc.pc13.into_push_pull_output(&mut gpioc.crh);

    loop {
        led.set_high().unwrap();
        delay(1_000_000);
        led.set_low().unwrap();
        delay(1_000_000);
    }
}

fn delay(mut count: u32) {
    while count > 0 {
        count -= 1;
    }
}

最佳实践

  1. 使用 stm32f1xx-hal:该库提供了丰富的外设驱动,简化了开发过程。
  2. 模块化设计:将不同功能模块化,便于维护和扩展。
  3. 使用 defmt 进行调试defmt 是一个轻量级的调试工具,适用于嵌入式系统。

典型生态项目

stm32f1xx-hal

stm32f1xx-hal 是一个基于 Rust 的 STM32F1 系列微控制器的硬件抽象层库。它提供了对 GPIO、UART、SPI、I2C 等外设的支持,是开发 STM32F1 系列项目的基础库。

cortex-m-rt

cortex-m-rt 是一个用于 Cortex-M 处理器的 Rust 运行时库,提供了启动代码和异常处理等功能。

defmt

defmt 是一个轻量级的调试工具,适用于嵌入式系统。它提供了格式化的日志输出功能,便于调试和分析。

通过这些生态项目的支持,开发者可以更高效地进行 STM32F103 开发板的嵌入式开发。

stm32f103-tutorial stm32f103-tutorial 项目地址: https://gitcode.com/gh_mirrors/st/stm32f103-tutorial

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贺晔音

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值