ESP32 adc1采集是正常的,adc2采集高速adcdac数据采集都是3.3, 这是怎么回事? 谁有关于adc2操作的代码吗?

实验2:ADC数据采集_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
实验2:ADC数据采集
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢esp32:spec:esp32s
ESP32S 数据手册
本文档为用户提供 ESP32S 模组的技术规格。
免责申明和版权公告
本文中的信息,包括供参考的URL地址,如有变更,恕不另行通知。
文档“按现状”提供,不负任何担保责任,包括对适销性、适用于特定用途或非侵权性的任何担保,和任何提案、规格或样品在他处提到的任何担保。本文档不负任何责任,包括使用本文档内信息产生的侵犯任何专利权行为的责任。本文档在此未以禁止反言或其他方式授予任何知识产权使用许可,不管是明示许可还是暗示许可。
Wi-Fi 联盟成员标志归 Wi-Fi 联盟所有。
蓝牙标志是Bluetooth SIG的注册商标。
文中提到的所有商标名称、商标和注册商标均属其各自所有者的财产,特此声明。
由于产品版本升级或其他原因,本手册内容有可能变更。深圳市安信可科技有限公司保留在没有任何通知或者提示的情况下对本手册的内容进行修改的权利。本手册仅作为使用指导,深圳市安信可科技有限公司尽全力在本手册中提供准确的信息,但是深圳市安信可科技有限公司并不确保手册内容完全没有错误,本手册中的所有陈述、信息和建议也不构成任何明示或暗示的担保。
ESP32S 是一款通用型WiFi-BT-BLE MCU模组,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和MP3解码等。
此款模组的核心是ESP32芯片,具有可扩展、自适应的特点。两个CPU核可以被单独控制或上电。时钟频率的调节范围为80 MHz到240 MHz。用户可以切断CPU的电源,利用低功耗协处理器来不断地监测外设的状态变化或某些模拟量是否超出阈值。ESP32还集成了丰富的外设,包括电容式触摸传感器、霍尔传感器、低噪声传感放大器,SD卡接口、以太网接口、高速SDIO/SPI、UART、I2S 和I2C 等。
ESP-WROOM-32集成了传统蓝牙、低功耗蓝牙和Wi-Fi,具有广泛的用途:Wi-Fi支持极大范围的通信连接,也支持通过路由器直接连接互联网;而蓝牙可以让用户连接手机或者广播BLE Beacon以便于信号检测。ESP32芯片的睡眠电流小于5uA,使其适用于电池供电的可穿戴电子设备。ESP-WROOM-32支持的数据传输速率高达150 Mbps,经过功率放大器后,输出功率可达到22 dBm,可实现最大范围的无线通信。因此,这款芯片拥有行业领先的技术规格,在高集成度、无线传输距离、功耗以及网络联通等方面性能最佳。ESP32的操作系统是带有LWIP的freeRTOS,还内置了带有硬件加速功能的TLS 1.2。芯片同时支持OTA加密升级,开发者可以在产品发布之后继续升级。软件发布被列入ESP32 bug赏金计划,用户可以向bug-报告任何bug。
用户可以将对于模组、芯片、API和固件的反馈意见发送到 。
表1列出了 ESP32S的产品规格。
FCC/CE/TELEC/KCC
802.11 b/g/n/d/e/i/k/r (802.11n,速度高达150 Mbps)
A-MPDU和A-MSDU聚合,支持0.4us防护间隔
2.4~2.5 GHz
符合蓝牙v4.2 BR/EDR和BLE标准
具有-98 dBm灵敏度的NZIF接收器
Class-1, Class-2和Class-3发射器
CVSD和SBC音频
SD卡、UART、SPI、SDIO、I2C、LED PWM、电机PWM、I2S、I2C、IR
GPIO、电容式触摸传感器、ADC、DACLNA前置放大器
片上传感器
霍尔传感器、温度传感器
26 MHz晶振、32 kHz晶振
平均:80 mA
工作温度范围
-40°C~+85°C
环境温度范围
18 mm x 20 mm x 3 mm
Station/softAP/SoftAP+station/P2P
WPA/WPA2/WPA2-Enterprise/WPS
AES/RSA/ECC/SHA
UART下载/OTA(通过网络/通过主机下载和写固件
支持云服务器开发/SDK用于用户固件开发
IPv4、IPv6、SSL、TCP/UDP/HTTP/FTP/MQTT
AT+指令集、云端服务器、安卓/iOS APP
2. 管脚定义
2.1管脚布局
图1: ESP32S 引脚尺寸图
表2: ESP32S模组尺寸
PAD尺寸(底部)
屏蔽盖高度
2.8 ± 0.1 mm
0.45 mm x 0.9 mm
0.8 ± 0.1 mm
2.2管脚描述
ESP32S共有38个管脚,具体描述参见表3。
表3: ESP32S管脚定义
使能芯片,高电平有效。
GPI36, SENSOR_VP, ADC_H, ADC1_CH0, RTC_GPIO0
GPI39, SENSOR_VN, ADC1_CH3, ADC_H, RTC_GPIO3
GPI34, ADC1_CH6, RTC_GPIO4
GPI35, ADC1_CH7, RTC_GPIO5
GPIO32, XTAL_32K_P (32.768 kHz crystal oscillator input), ADC1_CH4, TOUCH9, RTC_GPIO9
GPIO33, XTAL_32K_N (32.768 kHz crystal oscillator output), ADC1_CH5, TOUCH8, RTC_GPIO8
GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0
GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1
GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV
GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK, HS2_CLK, SD_CLK, EMAC_TXD2
GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ, HS2_DATA2, SD_DATA2, EMAC_TXD3
GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID, HS2_DATA3, SD_DATA3, EMAC_RX_ER
GPIO9, SD_DATA2, SPIHD, HS1_DATA2, U1RXD
GPIO10, SD_DATA3, SPIWP, HS1_DATA3, U1TXD
GPIO11, SD_CMD, SPICS0, HS1_CMD, U1RTS
GPIO6, SD_CLK, SPICLK, HS1_CLK, U1CTS
GPIO7, SD_DATA0, SPIQ, HS1_DATA0, U2RTS
GPIO8, SD_DATA1, SPID, HS1_DATA1, U2CTS
GPIO15, ADC2_CH3, TOUCH3, MTDO, HSPICS0, RTC_GPIO13, HS2_CMD, SD_CMD, EMAC_RXD3
GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP, HS2_DATA0, SD_DATA0
GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1, EMAC_TX_CLK
GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD, HS2_DATA1, SD_DATA1, EMAC_TX_ER
GPIO16, HS1_DATA4, U2RXD, EMAC_CLK_OUT
GPIO17, HS1_DATA5, U2TXD, EMAC_CLK_OUT_180
GPIO5, VSPICS0, HS1_DATA6, EMAC_RX_CLK
GPIO18, VSPICLK, HS1_DATA7
GPIO19, VSPIQ, U0CTS, EMAC_TXD0
GPIO21, VSPIHD, EMAC_TX_EN
GPIO3, U0RXD, CLK_OUT2
GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2
GPIO22, VSPIWP, U0RTS, EMAC_TXD1
GPIO23, VSPID, HS1_STROBE
2.3 Strapping 管脚
ESP32共有6个Strapping管脚,软件可以读取寄存器“GPIO_STRAPPING”中这6个位的值。
在芯片上电复位过程中,Strapping管脚对电平釆样并存储到锁存器中,锁存为“0”或“1”,并一直保持到芯片
掉电或关闭。
每一个Strapping管脚都会连接内部上拉/下拉。如果一个Strapping管脚没有连接或者连接的外部线路处于高
阻抗状态,内部弱上拉/下拉将决定Strapping管脚输人电平的默认值。
为改变Strapping比特的值,用户可以应用外部下拉/上拉电阻,或者应用主机MCU的GPIO控制ESP32上
电复位时的Strapping管脚电平。
复位后,Strapping管脚和普通管脚功能相同。
配置Strapping管脚的详细启动模式请参阅表4。
表 4: Strapping 管脚
内置 LDO (VDD_SDIO)电压
MTDI/GPIO12
系统启动模式
SPI Flash启动模式
下载启动模式
系统启动过程中,U0TXD输出log 打印信息
MTDO/GPIO15
SDIO从机信号输入输出时序
下降沿输入
下降沿输出
下降沿输入
上升沿输出
上升沿输入
下降沿输出
上升沿输入
上升沿输出
MTDO/GPIO15
3.功能描述
本章描述了 ESP32S的各个模块和功能。
3.1 CPU和内存
ESP32 内置两个低功耗 Xtensa(R)32-bit LX6 MCU。片上存储包括:
448KBytes 的 ROM,用于程序启动和内核功能调用
用于数据和指令存储的520 KBytes片上SRAM
RTC 中 8KBytes 的 SRAM,即RTC慢速存储器,可以在Deep-sleep模式下被协处理器访问
RTC 中 8kBytes 的 SRAM,即RTC快速存储器,可以在Deep-sleep模式下RTC启动时用于数据存储以及被主CPU访问
1kbit 的 EFUSE,其中256 bits为系统专用(MAC地址和芯片设置);其余768 bits保留给用户应用,这些应用包括Flash加密和芯片ID
3.2 外部 Flash 和 SRAM
  ESP32最多支持4个16 MBytes的外部QSPI Flash和静态随机存储器(SRAM),具有基于AES的硬件加密功
能,从而保护开发者的程序和数据。
ESP32通过高速缓存访问外部QSPI Flash和SRAM。高达16 MBytes的外部Flash映射到CPU代码空
间,支持8-bit、16-bit和32-bit访问,并可执行代码。
高达8 MBytes的外部Flash和SRAM映射到CPU数据空间,支持8-bit、16-bit和32-bit访问。Flash仅
支持读操作,SRAM可支持读写操作。
支持频率为40 MHz、26 MHz和24 MHz的晶振。晶振的精确度在±10 PPM之间,工作温度范围在-40°C到85°C之间。
在使用下载工具时请选择正确的晶振类型。在电路设计中,对地调节电容C1和C2被分别添加到晶振的输入和输出终端。两个电容的值可以灵活设定,范围从6 pF到22 pF。但是,具体电容值还需要对整个电路的整体表现进行匹配后才能确定。一般来讲,如果晶振的频率为26 MHz,则C1和C2的电容值在10 pF以内;如果晶振的频率为40 MHz,则C1和C2的电容值为10 pF&C1, C2&22 pF。
RTC晶振的频率通常为32 kHz或32.768 kHz。由于采用了内部校准来校正频率偏移,晶振的频率可能会超出±20 PPM的范围。当芯片在低功耗模式下工作时,设备应选择外置低速32 kHz晶振时钟,而不是内部RC振荡器来获得精确的唤醒时间。
ESP32拥有先进的电源管理技术,可以在各种省电模式之间切换。
Active模式:芯片射频处于工作状态。芯片可以接收、发射和侦听信号。
Modem-sleep模式:CPU保持运行,时钟可被配置。Wi-Fi/蓝牙基带和射频关闭。
Light-sleep模式:CPU暂停运行。RTC和ULP协处理器运行。任何唤醒事件(MAC、主机、RTC定时器或外部中断)都会唤醒芯片。
Deep-sleep模式:只有RTC处于工作状态。Wi-Fi和蓝牙连接数据存储在RTC中。ULP协处理器保持运行。
Hibernation模式:内置的8 MHz振荡器和ULP协处理器均被禁用。RTC内存回收电源被切断。只有一个位于慢时钟上的RTC时钟定时器和某些RTC GPIO处于激活状态。RTC定时器或RTC GPIO可以将芯片从Hibernation模式中唤醒。
关联睡眠方式:省电模式在Active模式与Modem-sleep模式/Light-sleep模式之间切换。CPU、Wi-Fi、蓝牙和射频按照预设定期被唤醒以保证Wi-Fi/蓝牙的连接。
超低功耗传感器监测方式:主系统处于Deep-sleep模式,ULP协处理器定期被开启或关闭来测量传感器数据。根据传感器测量到的数据,ULP协处理器决定是否唤醒主系统。功耗随省电模式/睡眠方式以及功能模块的工作状态而改变(见表5)。
表5:不同省电模式下的功耗
Active (射频工作)
Wi-Fi Tx packet 13 dBm~21 dBm
160~260 mA
Wi-Fi/BT Tx packet 0 dBm
Wi-Fi/BT Rx和侦听
关联睡眠方式(与Light-sleep模式关联)
0.9 mA@DTIM3, 1.2 mA@DTIM1
Modem-sleep
CPU处于工作状态
最大速度:20 mA
正常速度:5~10 mA
慢速:3 mA
Light-sleep
Deep-sleep
ULP协处理器处于工作状态
超低功耗传感器监测方式
25 uA @1 % duty
RTC定时器+RTC存储器
Hibernation
仅有RTC定时器处于工作状态
3.5外设接口
表6:接口描述
两个 12-bit 的 SAR ADCs
超低噪声前置模拟放大器
通过PCB上更大的电容来为ADC提供大约60 dB的增益。
两个8-bit的DACs
触摸传感器
电容式触摸传感器
SDSDIO / MMC 主机控制器
符合V3.01标准的SD卡
PWM0_OUT0~2
3路16-bit定时器产生PWM波形,
每路包含一对输出信号。
3个故障检测信号。
3个even capture信号。
3个同步信号。
PWM1_OUT_IN0~2
PWM0_FLT_IN0~2
PWM1_FLT_IN0~2
PWM0_CAP_IN0~2
PWM1_CAP_IN0~2
PWM0_SYNC_IN0~2
PWM1_SYNC_IN0~2
ledc_hs_sig_out0~7
16个独立的通道运行在80 MHz的时钟或
RTC时钟上。占空比精确度:16-bit。
ledc_ls_sig_out0~7
两个带有硬件流控制和DMA的UART设备
I2CEXT0_SCL_in
两个I2C设备,以从机或主机模式工作
I2CEXT0_SDA_in
I2CEXT1_SCL_in
I2CEXT1_SDA_in
I2CEXT0_SCL_out
I2CEXT0_SDA_out
I2CEXT1_SCL_out
I2CEXT1_SDA_out
I2S0I_DATA_in0~15
用于串行立体声数据的输入输出,并行LCD数据的输出
I2S0O_BCK_in
I2S0O_WS_in
I2S0I_BCK_in
I2S0I_WS_in
I2S0I_H_SYNC
I2S0I_V_SYNC
I2S0I_H_ENABLE
I2S0O_BCK_out
I2S0O_WS_out
I2S0I_BCK_out
I2S0I_WS_out
I2S0O_DATA_out0~23
I2S1I_DATA_in0~15
I2S1O_BCK_in
I2S1O_WS_in
I2S1I_BCK_in
I2S1I_WS_in
I2S1I_H_SYNC
I2S1I_V_SYNC
I2S1I_H_ENABLE
I2S1O_BCK_out
I2S1O_WS_out
I2S1I_BCK_out
I2S1I_WS_out
I2S1O_DATA_out0~23
红外遥控器
RMT_SIG_IN0~7
8路IR收发器,支持不同波形标准
RMT_SIG_OUT0~7
SHD/SD2 支持Standard SPI、Dual SPI和Quad SPI,可以连接外部Flash和SRAM
HSPIQ_in/_out
Standard SPI包含时钟、片选、MOSI和MISO。这些SPI可连接LCD和其他外设。具有以下特性:
(a) 主机和从机工作模式;
(b) 根据极性(POL)和相位(PHA)的4种模式的SPI格式传输;
(c) 可配置的CLK频率;
(d) 64 Byte 的FIFO和DMA。
HSPID_in/_out
HSPICLK_in/_out
HSPI_CS0_in/_out
HSPI_CS1_out
HSPI_CS2_out
VSPIQ_in/_out
VSPID_in/_out
VSPICLK_in/_out
VSPI_CS0_in/_out
VSPI_CS1_out
VSPI_CS2_out
用于软件调试的JTAG
SDIO接口符合V2.0行业标准
EMAC_TX_CLK
带MII/RMII接口的以太网MAC
EMAC_RX_CLK
EMAC_TX_EN
EMAC_RX_ER
EMAC_RX_DV
EMAC_CLK_OUT
EMAC_CLK_OUT_180 IO17
EMAC_TX_ER
EMAC_MDC_out
EMAC_MDI_in
EMAC_MDO_out
EMAC_CRS_out
EMAC_COL_out
4.电气特性
如无特殊说明,本章所列规格的测试环境为:VBAT= 3.3V, TA= 27°C。
4.1极限参数
表7:极限参数
最大焊接温度
IPC/JEDEC J-STD-020
4.2建议工作条件
表8:建议工作条件
4.3数字端口特性
表9:数字端口特性
输入逻辑电平低
输人逻辑电平高
输出逻辑电平低
输出逻辑电平高
4.4 Wi-Fi 射频
表10: Wi-Fi射频特性
PA的输出功率
DSSS, 1 Mbps
CCK, 11 Mbps
OFDM, 6 Mbps
OFDM, 54 Mbps
HT20, MCSO
HT20, MCS7
HT40, MCSO
HT40, MCS7
OFDM, 6 Mbps
OFDM, 54 Mbps
HT20, MCS0
HT20, MCS7
4.5低功耗蓝牙射频
4.5.1接收器
表11: BLE接收器特性
灵敏度@0.1% BER
最大接收信号@0.1 % BER
邻道选择性C/I
F = F0 + 1 MHz
F = F0 - 1 MHz
F = F0 + 2 MHz
F = F0 - 2 MHz
F = F0 + 3 MHz
F = F0 - 3 MHz
抗带外阻塞性能
30 MHz - 2000 MHz
2000 MHz - 2400 MHz
2500 MHz - 3000 MHz
3000 MHz - 12.5 GHz
4.5.2发射器
表12: BLE发射器特性
射频发射功率
射频功率控制范围
邻道发射功率
F = F0 + 1 MHz
F = F0 - 1 MHz
F = F0 + 2 MHz
F = F0 - 2 MHz
F = F0 + 3 MHz
F = F0 - 3 MHz
F = F0 + & 3 MHz
F = F0 - & 3 MHz
?f2avg/?f1avg
频率漂移率
4.6回流焊温度曲线
表13:回流焊温度曲线
升温速率TS最大值到TL
最大值3°C/秒
最小温度值(TS Min.)
典型温度值(TSTyp.)
最大温度值(TS Max.)
升温速率(TL到TP)
最大值3°C/秒
持续时间:温度(TL) /时间(TL)
217°C/60~150秒
温度峰值(TP)
最高温度260°C,持续10秒
目标温度峰值(TP目标值)
260°C +0/-5°C
实际温度峰值(tP) 5°C持续时间
降温速率TS最大值到TL
最大值6°C/秒
从25°C调至温度峰值所需时间(t)
32 kHz的板上晶振连接ESP32的GPIO32和GPIO33。要使用IO32和IO33的ADC、Touch或GPIO功能,需要移除 32 kHz的晶振和其电容器C13和C17,并且焊接0ohm电阻器 R5和R6。
ESP32S电路原理图
附1.最小系统电路
附2.自动烧录电路
将模组的 EN、GPIO 引脚与串口芯片的 DTR 和 RTS 连接,即可实现软件控制运行模式
固件可以通过配置一些寄存器比特位,在启动后改变“内置LDO (VDD_SDIO)电压”和“SDIO从机信号输入输出时序”的设定。
电机PWM、LEDPWM、UART、I2C、I2S、通用SR和红外遥控器的功能可以被配置到任意GPIO。
C1、C2的容值随晶振的选择而定
最后更改: 10月前(外部编辑)
除额外注明的地方外,本维基上的内容按下列许可协议发布:STM32如何采集两路AD信号_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
STM32如何采集两路AD信号
我用的是正点的板子,自学了一下,看到ADC这里表示不太明白,我想用ADC1的两个通路同时采集两路的电压信号,如PA0接3.3V,PA1接0V,不知道是哪里出问题了,只能读取PA0的电压而读不出PA1的电压,有人说要分时读取DR的值,如果用ADC1和ADC2分别独立模式采集的话...
1. 请参照附件档 (STM32™’s ADC modesand their applications).2. 请参照以下网址:ADC modeIndependent-mode&和&Multi-mode (Dual-mode or Triple-mode)Independent mode&表示此 ADC 独立运作。multi-mode&表示ADC同时合作执行。Independent modeADC 通道配置&通道可分成&regular,&injected&二组,每个通道能任意属於哪一组。@Regular group会依序被转换,但顺序可自由配置,最多 16 个。可以选择 ADC 开始运作时就进行转换或等待外来触发转换。有二种控制条件,组合出四种模式:1.Single Channel Single conversion mode: 单一通道进行一次转换。2.Single Channel Continuous conversion mode: 单一通道持续进行转换。3&4.Scan mode: 也分为转换一次与连续转换,但因为 data register 只有一个,所以要用&DMA&避免资料遗失。DMA: 每个通道转换完成都发出一个 DMA request, 可设定为每当 DMA 发生就触发一次中断,即可读出每个通道所转换的值,也可以全部转换後一次读取全部通道的值。@Injected group最多 4 个通道,且只能设为等待触发而转换。(插队)触发时若正在转换规则通道则会暂停而先处理注入通道,完毕後恢复原运作。如果转换注入通道过程中规则通道转换被触发,不会中止注入通道转换,而是转换完毕才进行规则通道转换。Auto-injected mode 可设注入通道转换於规则通道 scan 完成後,可实现一个 iteration 执行 20 次转换。Discontinuous mode: 见regular group,但在 injected group 强迫每批只能一个通道(n=1)。Multi Mode有别於STM32F407,STM32F429可以将3个ADC都开成Multi Mode,也就是说原本Multi Mode只有Dual Mode,现在多了Triple Mode.ADC1, ADC2 ADC3分别担任 master & 两个slave.1.Injected simultaneous modeDual Mode:-两个 ADCs 同时触发而转换 injected groups.Triple Mode:-三个 ADCs 同时触发而转换 injected groups.2.Regular simultaneous modeDual Mode:-2 ADCs 外部讯号同时触发,一起对所负责通道依序转换,结果存在 ADC1 DR.-禁止二个 ADCs 同时对同一通道转换以免误差。Triple Mode.以上两者的差别在於不同的group3.Interleaved modeDual Mode:透过两个以上的ADC交互转换同一个通道可以达到更高的取样频率由於同使只能有一个ADC对同一个通道做采样,因此必须要增加两个cycle的Delay time以免 phase overlap.Triple Mode.4.Alternate trigger modeDual Mode:只能用在双方的 injected groups, 用同样外部讯号轮流接受触发。如单数次触发到 ADC1 双数次触发到 ADC2 injected group.Triple Mode.
采纳率:86%
//使能DMA时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO;DMA通道操作模式位环形缓冲模式 DMA_InitStructure.DMA_Priority = DMA_Priority_H
/&#47.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOB;
&#47,分时读取,把程序贴给你; /
/定义GPIO初始化结构体 ADC_InitTypeDef ADC_InitS
&#47.ADC_ScanConvMode = ENABLE, GPIO_InitStructure,PC4的数据/************************************************************函数功能;/指定外设为源地址 DMA_InitStructure.DMA_BufferSize = 3;
&#47:AD配置函数入口参数:无出口参数:无*************************************************************/
&#47.DMA_MemoryInc = DMA_MemoryInc_E
//由软件控制转换 ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_R
//使能DMA通道1
/&#47.DMA_M2M = DMA_M2M_DDMA通道优先级高 DMA_InitS
///&#47,GPIOA时钟
&#47我用的DMA,你可以选择其中两路vu16 ADC_ConvertedValue[3]={0,0,0};/定义ADC初始化结构体变量 DMA_InitTypeDef DMA_InitS
/禁止DMA通道存储器到存储器传输 DMA_Init(DMA1_Channel1;/定义DMA初始化结构体
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE), &GPIO_InitStructure);/ADC转换工作在连续模式 ADC_InitS/内存区存的AD转换结果,随时变化
分别存PB0和PB1;配置ADC ADC_InitSvoid ADC_Converted(void){ GPIO_InitTypeDef GPIO_InitS
/复位DMA通道1 DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfW ///使能ADC1;
&#47, &GPIO_InitStructure);/当前存储器地址改变 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord.ADC_NbrOfChannel = 3;
//转换通道数目为3,一路电压,一路电流,一路温度 ADC_Init(ADC1, &ADC_InitStructure);
//初始化ADC ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 1, ADC_SampleTime_71Cycles5); //ADC1选择信道8,音序器等级1,采样时间13.5个周期 ADC_RegularChannelConfig(ADC1, ADC_Channel_9, 2, ADC_SampleTime_71Cycles5); //ADC1选择信道9,音序器等级2,采样时间13.5个周期 ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 3, ADC_SampleTime_239Cycles5);
//温度采样时间较长 //ADC1选择信道14,音序器等级2,采样时间13.5个周期 ADC_DMACmd(ADC1, ENABLE);
//使能ADC1模块DMA ADC_Cmd(ADC1, ENABLE);
//使能ADC1 ADC_ResetCalibration(ADC1);
//重置ADC1校准寄存器 while(ADC_GetResetCalibrationStatus(ADC1));//等待ADC1校准重置完成 ADC_StartCalibration(ADC1);
//开始ADC1校准 while(ADC_GetCalibrationStatus(ADC1));
//等待ADC1校准完成 ADC_SoftwareStartConvCmd(ADC1, ENABLE);
//软件使能ADC1开始转换},GPIOB;
//定义外设数据宽度16位 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
/&#47,我用的3路;
//定义 DMA通道外设基地址=ADC1_DR_Address DMA_InitStructure, ENABLE);//配置PB0,PB1为模拟输入;
//定义存储器数据宽度16位 DMA_InitStructure.DMA_Mode = DMA_Mode_Circular.ADC_ContinuousConvMode = ENABLE;/定义DMA缓冲区大小3
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_D //转换数据右对齐 ADC_InitS/&#47.ADC_Mode = ADC_Mode_I当前外设寄存器地址不变 DMA_InitS/定义DMA通道存储器地址 DMA_InitS
///初始化DMA通道1 DMA_Cmd(DMA1_Channel1, ENABLE);配置PC4为模拟输入, GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOC;/使能扫描 ADC_InitS配置DMA DMA_DeInit(DMA1_Channel1).DMA_MemoryBaseAddr = (u32)&ADC_ConvertedV/ADC1和ADC2工作在独立模式 ADC_InitStructure, &DMA_InitStructure);
/&#47.ADC_ExternalTrigConv = ADC_ExternalTrigConv_N&#47
本回答被提问者和网友采纳
用一个ad分时读取就可以了 没有必要完全同时.
你好,有联系方式吗?我想加你详细学习一下,谢谢
读取时要切换通道的
其他1条回答
为您推荐:
其他类似问题
您可能关注的内容
stm32的相关知识
换一换
回答问题,赢新手礼包查看: 2537|回复: 15
ADC1三通道采集DMA搬运 + 双ADC采集DMA搬运
主题帖子精华
初级会员, 积分 80, 距离下一级还需 120 积分
在线时间0 小时
小弟刚开始接触STM32&& 拿着战舰开发板学习& 看见资料里介绍的DMA觉得很有意思& 想学学看&
原子哥的标准例程里面只有UART的DMA&&&&&刚好我想用ADC的& 结果论坛里面没找到库函数版好用的啊
搞了好几天终于好使了& 发个分享一下吧&& 都是在原子哥战舰版上能运行的
虽然在开发板上好使了& 但还是有些细节没想通
双ADC的时候&& ADC1和ADC2的数据分别在ADC_DR的低字节和高字节
我做均值滤波的时候&&&&&& 必须先把高低字节分开在求平均才行 , 不然数据就会有错误&& 可是我求和只求了10次&& 12位AD最大4096求和10次40960&&& 16位数65535应该装的下啊&& 但是数据就不对了。。不知道为啥
另如果想双ADC每个ADC开2个通道的话&&&&&&& 比如 ADC1开通道 0 ,1&& ADC2开通道2 ,3&
DMA从ADC_CR搬运的时候&&& 哪2个通道是对应放在一个ADC_CR的呢&&&
是在这句的第三个参数设置的么?
ADC_RegularChannelConfig(ADC1,ADC_Channel_2,1,ADC_SampleTime_239Cycles5);
话说这第三个参数优先级&就是& 转换顺序吧
双ADC多通道还弄明白&&& ,希望有人指点指点& ,虽然我是伸手党←_←&
12:01 上传
点击文件名下载附件
3.34 MB, 下载次数: 2958
12:01 上传
点击文件名下载附件
3.44 MB, 下载次数: 919
我是伸手党
主题帖子精华
在线时间306 小时
我现在害怕伸手党了,呵呵
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
主题帖子精华
初级会员, 积分 80, 距离下一级还需 120 积分
在线时间0 小时
回复【2楼】八度空间:
---------------------------------
哈哈
怕了吧,伸手你不给就是妄自尊大
话说论坛怎么不能发表情=&=
我是伸手党
主题帖子精华
在线时间85 小时
博观而约取,厚积而薄发。
主题帖子精华
初级会员, 积分 80, 距离下一级还需 120 积分
在线时间0 小时
回复【4楼】:
---------------------------------
怎么发的表情。。。。
我是伸手党
主题帖子精华
在线时间85 小时
回复文章----图标第二行第二个
博观而约取,厚积而薄发。
主题帖子精华
初级会员, 积分 80, 距离下一级还需 120 积分
在线时间0 小时
回复【6楼】:
---------------------------------
额。。。我都是直接在下面的框框回复的没注意过那个。。。。
敢问这位老师那个六足机器人是你的毕设么?&&&也是15年毕业?
好流B啊&&&&膜拜了。。。我这个伸手党&&还不知道毕设做什么好。。。
我是伸手党
主题帖子精华
在线时间85 小时
回复【7楼】球球~电子:
---------------------------------
额…不是,那个做着玩的,真没多少技术含量…毕设不都是选题吗,你自己找题目做?
博观而约取,厚积而薄发。
主题帖子精华
初级会员, 积分 80, 距离下一级还需 120 积分
在线时间0 小时
回复【8楼】:
---------------------------------
哈哈,您这是会的不难么,我就是难得不会了。。。
嗯,我们是选题也行&&&&自己有想法&老师看了同意也行&&&&下学期开学才选题
假期出来自己找了个公司实习&&&&&开始接触STM32&&
顺便琢磨琢磨做什么好。。。
我是伸手党
主题帖子精华
在线时间85 小时
回复【9楼】球球~电子:
---------------------------------
别这么客气,都是一届的,互相学习啊……我也很菜的!自己找题目的话得准备很多东西,包括要求等。老师给题目的话,自己要准备的就少,我毕设做强电。感觉强电过瘾,哈哈,不过也偏软
博观而约取,厚积而薄发。
主题帖子精华
初级会员, 积分 80, 距离下一级还需 120 积分
在线时间0 小时
回复【10楼】:
---------------------------------
哈哈,一届的就这么厉害更佩服了
我在学校玩太欢了。。。出来实习都现学
开发板上STM32外设还没调全呢,ADC+DMA就弄好几天-&-
哦哦&,那我等开学从老师那选题吧&&
我学电子的强电没怎么接触过,让我整我都害怕,哈哈。。。
我是伸手党
主题帖子精华
在线时间85 小时
回复【11楼】球球~电子:
---------------------------------
嗯,电子的确实不用学强电,一起加油啊!!!
博观而约取,厚积而薄发。
主题帖子精华
初级会员, 积分 80, 距离下一级还需 120 积分
在线时间0 小时
回复【12楼】:
---------------------------------
哈哈&
好的,与君共勉!
我是伸手党
主题帖子精华
初级会员, 积分 89, 距离下一级还需 111 积分
在线时间5 小时
感谢分享!!
主题帖子精华
初级会员, 积分 83, 距离下一级还需 117 积分
在线时间3 小时
非常感谢分享!
做自己喜欢做的的事,爱自己所爱的人!
主题帖子精华
新手上路, 积分 39, 距离下一级还需 11 积分
在线时间8 小时
下载了您的资料,谢谢。
Powered by

我要回帖

更多关于 stm32adc数据采集跳动 的文章

 

随机推荐