当前位置: 首页 > news >正文

STM32F103RC中ADC1和ADC2通道复用

以下是STM32F103RC中ADC1和ADC2通道复用的示意图及文字说明,帮助直观理解这种共享关系:


ADC1/ADC2引脚复用示意图

GPIO引脚       ADC1通道        ADC2通道
┌─────────┐   ┌─────────┐   ┌─────────┐
│  PA0    ├───┤ ADC1_IN0├─┬─┤ ADC2_IN0│
├─────────┤   ├─────────┤ │ ├─────────┤
│  PA1    ├───┤ ADC1_IN1├─┬─┤ ADC2_IN1│
├─────────┤   ├─────────┤ │ ├─────────┤
│  ...    │   │   ...   │ │ │   ...   │
├─────────┤   ├─────────┤ │ ├─────────┤
│  PC5    ├───┤ADC1_IN15├─┬─┤ADC2_IN15│
└─────────┘   └─────────┘ │ └─────────┘│
内部信号通道               │
┌─────────────────────┐   │
│ ADC1_IN16 (温度传感器)│  │
├─────────────────────┤   │
│ ADC1_IN17 (VREFINT)  │  │
└─────────────────────┘   │││
┌─────────────────────┐   │
│ ADC2_IN16 (温度传感器├───┘
├─────────────────────┤
│ ADC2_IN17 (VREFINT) │
└─────────────────────┘

以下是用简单示意图来帮助理解STM32F103RC的ADC1和ADC2外部通道与GPIO引脚关系:

整体框架图

 +---------------------+| STM32F103RC芯片    |+---------------------+|| (内部连接)|+---------------------+| ADC1模块           |+---------------------+|| (复用连接)|+---------------------+| GPIO引脚组(PA0 - PC5)|+---------------------+|| (复用连接)|+---------------------+| ADC2模块           |+---------------------+

具体通道对应关系展开图

GPIO引脚ADC1通道ADC2通道
PA0IN0IN0
PA1IN1IN1
PA2IN2IN2
PA3IN3IN3
PA4IN4IN4
PA5IN5IN5
PA6IN6IN6
PA7IN7IN7
PB0IN8IN8
PB1IN9IN9
PC0IN10IN10
PC1IN11IN11
PC2IN12IN12
PC3IN13IN13
PC4IN14IN14
PC5IN15IN15

这表示STM32F103RC芯片内,ADC1和ADC2的16个外部通道(IN0 - IN15 )在物理上都连接到了PA0 - PC5这些GPIO引脚上,在使用时可根据需求配置这些引脚作为ADC通道来采集模拟信号 。

关键点解析

  1. 外部通道共享

    • 每个GPIO引脚(如PA0)同时连接到ADC1和ADC2的对应通道
    • 例如:PA0同时是ADC1_IN0ADC2_IN0,但同一时间只能被一个ADC模块采样
  2. 内部通道独立

    • 温度传感器(IN16)和内部参考电压(IN17)在ADC1和ADC2中逻辑上独立,但物理上来自同一个传感器源。
  3. 冲突示例

    • 若同时配置ADC1_IN0ADC2_IN0采样PA0,会导致硬件竞争,结果不可预测。

实际电路等效模型

PA0引脚│├───[ADC1 MUX]─── ADC1_IN0│└───[ADC2 MUX]─── ADC2_IN0
  • MUX(多路复用器):STM32内部通过电子开关切换ADC1或ADC2连接到引脚。

使用规则总结

  1. 允许的操作

    • ADC1采样PA0,ADC2采样PA1(不同引脚)。
    • ADC1和ADC2分时复用PA0(非同步)。
  2. 禁止的操作

    • ADC1和ADC2同时采样PA0(硬件冲突)。
    • ADC1和ADC2同时启用扫描模式并包含同一引脚。

代码示例(安全用法)

// 安全配置:ADC1用PA0,ADC2用PA1
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5); // PA0
ADC_RegularChannelConfig(ADC2, ADC_Channel_1, 1, ADC_SampleTime_55Cycles5); // PA1// 危险配置(冲突!)
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5); // PA0
ADC_RegularChannelConfig(ADC2, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5); // PA0

通过这种共享设计,STM32在有限的引脚下实现了多ADC灵活性,但需开发者注意合理分配资源。

相关文章:

  • 关于AI 大数据模型的基础知识 杂记
  • 紧扣婴幼儿托育服务与管理实训室建设要点:评估与持续改进策略
  • WebSocket与Socket.IO实现简易客服聊天系统全解析
  • 力扣26——删除有序数组中的重复项
  • 特殊配合力(SCA)作为全基因组关联分析(GWAS)的表型,其生物学意义和应用价值
  • Uniapp Android/IOS 获取手机通讯录
  • MySQL SQL Mode及其说明
  • 4.3【LLaMA-Factory实战】教育大模型:个性化学习路径生成系统全解析
  • 4.2【LLaMA-Factory实战】金融财报分析系统:从数据到部署的全流程实践
  • pandas中的数据聚合函数:`pivot_table` 和 `groupby`有啥不同?
  • R1快开门式压力容器操作考试的实操技能考试有哪些注意事项?
  • 多品种与多时间框架策略跨市场交易的实现
  • 高效处理CR
  • RDD的自定义分区器-案例
  • 国产linux系统(银河麒麟,统信uos)使用 PageOffice 在线打开Word文件,并用前端对话框实现填空填表
  • 自然语言处理 (NLP) 技术发展:从规则到大型语言模型的演进之路
  • 增强学习(Reinforcement Learning)简介
  • 机械臂柔顺控制:阻抗控制、导纳控制和力位混合控制
  • 户用/工商业/高压系统防逆流装置选型指南‌
  • Docker的基础操作
  • 看展览|2025影像上海艺博会:市场与当代媒介中的摄影
  • 七大交响乐团在沪“神仙斗法”,时代交响奏出何等时代新声
  • 纽约大学朗格尼医学中心的转型带来哪些启示?
  • 85后清华博士黄佐财任湖北咸宁市咸安区委副书记、代区长
  • 少年中国之少年的形塑
  • 明天起,沪苏湖高铁、杭温高铁推出13款新型票制产品