你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】使用 rust 开发 stm32:stm32f3discovery-adc-rtic

[复制链接]
STMCU小助手 发布时间:2021-12-5 10:52
本例程参考stm32fxxx-hal crate(如stm32f1xx-hal)官方例程,并在官方例程的基础上增加了一些注释,修正了一些错误。可以借鉴不同型号的 stm32 例程,毕竟固件库的核是一样的。

Press the user button on stm32f3discovery board, and you will see the voltage changing.

  1. #![no_main]
  2. #![no_std]

  3. use cortex_m::asm::delay;
  4. use cortex_m_semihosting::hprintln;
  5. use panic_semihosting as _;
  6. use rtic::app;
  7. use stm32f3xx_hal::{
  8.     adc::{self, Adc},
  9.     gpio::{gpioa::PA0, Analog},
  10.     pac::{self, ADC1},
  11.     prelude::*,
  12.     rcc::RccExt,
  13. };

  14. #[app(device = stm32f3xx_hal::pac, peripherals = true)]
  15. const APP: () = {
  16.     struct Resources {
  17.         adc1: Adc<ADC1>,
  18.         adc1_in1_pin: PA0<Analog>,
  19.     }

  20.     #[init]
  21.     fn init(cx: init::Context) -> init::LateResources {
  22.         let mut dp: pac::Peripherals = cx.device;
  23.         let mut rcc = dp.RCC.constrain();

  24.         let mut flash = dp.FLASH.constrain();
  25.         let clocks = rcc.cfgr.freeze(&mut flash.acr);

  26.         let adc1 = adc::Adc::adc1(
  27.             dp.ADC1,
  28.             &mut dp.ADC1_2,
  29.             &mut rcc.ahb,
  30.             adc::CkMode::default(),
  31.             clocks,
  32.         );

  33.         let mut gpioa = dp.GPIOA.split(&mut rcc.ahb);
  34.         let adc1_in1_pin = gpioa.pa0.into_analog(&mut gpioa.moder, &mut gpioa.pupdr);

  35.         init::LateResources { adc1, adc1_in1_pin }
  36.     }

  37.     #[idle(resources=[adc1,adc1_in1_pin])]
  38.     fn idle(cx: idle::Context) -> ! {
  39.         loop {
  40.             let adc1_in1_data: u16 = cx
  41.                 .resources
  42.                 .adc1
  43.                 .read(cx.resources.adc1_in1_pin)
  44.                 .expect("Error reading adc1.");
  45.             hprintln!("PA0 reads {}", adc1_in1_data).unwrap();
  46.             delay(2_000_000);
  47.         }
  48.     }
  49. };
复制代码

收藏 评论0 发布时间:2021-12-5 10:52

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版