X
首页
最能打的中国芯评选
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
语言
中文
EN
嵌入式Rust活动专区
[原创] 【年终回炉:嵌入式rust训练】8.使用rust测量内置温度传感器和基准电压
_shenlan_
2026-3-4 12:55
楼主
## 1.简介 ADC是嵌入微控制器片内的A/D转换器,用于实现模数转换。本程序也是例程py32f030-hal例程,我们通过例程,读取内部温度传感器和内部参考电压的 ADC 数值,并转换为实际物理量。 ## 2.代码编写 禁用rust标准库和默认main入口,并导入依赖 ```rust #![no_std] #![no_main] use hal::adc::{ temperature, vrefence_internal, AdcChannel, AnyAdc, ChannelConfig, Config, SampleCycles, TrigleSignal, }; use py32f030_hal::adc::ConversionMode; use py32f030_hal::clock::sys_core_clock; use py32f030_hal::{self as hal, mode::Blocking}; // use panic_halt as _; use {defmt_rtt as _, panic_probe as _}; ``` 初始化ADC外设,并启动。 ```rust let adc: AnyAdc<_, Blocking> = AnyAdc::new( p.ADC, Config::default().sample(SampleCycles::Cycle_239_5), ChannelConfig::default() .over_write(false) .wait(true) // 转换完成后等待读取完毕再开始转换 .singal(TrigleSignal::Soft) .mode(ConversionMode::Continuous), &[AdcChannel::Channel11, AdcChannel::Channel12], ) .unwrap(); adc.start ``` 实现按顺序读取主控自带温度传感器的值和基准电压 ```rust loop { // 按通道顺序读取即可 let temp = adc.read_block(1000000).unwrap(); // adc.start(); let vol = adc.read_block(1000000).unwrap(); defmt::info!( "temp: {}: {}, vol: {}: {}", temp, temperature(temp), vol, vrefence_internal(vol) ); hal::delay::delay_s(1); } } ``` # 3.程序运行 使用如下代码,运行例程 ```cmd cargo r --example adc_block ``` 我们在终端可以看到如下内容,显示的是温度的原始值和转化后的数值以及电压的原始值和转换值。 
点赞
回复评论 (2)
沙发
Jacktang
为什么要禁用rust标准库
点赞
2026-3-7 09:04
板凳
_shenlan_
引用:
Jacktang 发表于 2026-3-7 09:04
为什么要禁用rust标准库
开发板的内存等资源的限制,禁用标准库可以节省一笔内存等系统开支。
点赞
2026-3-11 07:56
最新活动
罗德与施瓦茨—从天到地 从测试者角度 解读NTN技术
你晒单我买单2026第1期报名中,DigiKey得捷带您畅享好物!
有奖直播:AI基础设施技术测试周
免费申请《一本书讲透汽车功能安全:标准详解与应用实践》,挑战《ISO26262标准》共读,赢好礼
装备焕新月:e络盟Multicomp Pro系列产品,小投入,大升级 —— 装备焕新惊喜体验
MPS 机器人模块设计大赛报名重磅开启,锻造硬实力,让想法照进现实!
随便看看
三菱PLC全系列中文仿真软件
STM32 DFU 下载问题
关于CAM芯片
大学时代的一件糗事
求助
为中国工程师简化FPGA设计已成离弦之箭
TTL电平接口/CMOS电平接口/线圈耦合接口等7个常用的接口类型
秀秀奖品面包机并进行拆机附图(更新)
桥式整流电路
存放code 的ram区域设置为no cach吗?
变频器谐波的产生与抑制(转)
EEWORLD大学堂----TI 大学计划20周年
共阴数码管电流放大驱动的问题
为什么第二次置端口的语句不起作用了?
Matter开发指南(四):Matter编译环境搭建
请问如何将-5V~+5V的电压转换到0~+ 2.5V
mega168能否输出6路相互独立的PWM波形
射频微波高频板材介电常数对照表
IBM全新半导体技术助力单芯片手机解决方案
大家在用的WINCE60对SD卡支持的容量最大是多少?我的怎么只能支持2GB的SD卡?怎么改大?
往年今日
高分求助!MotoQ9h 刷机问题!
关于51与PC的串口通讯问题
ucLinux里面/bin/目录下的程序不能执行
帮忙看个程序。急用!!!
帮忙看个程序。急用!!!
EDB数据库的问题
请教各位 关于ARM 最最最 基础 、低层、非常重要的问题
嵌入式驱动开发资料和视频
keil 仿真实验板 led 点不亮 有程序[newer]
c8051f单片机仿真器对比如下,您会选择哪款仿真器呢?
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复