启动ADC DMA,并把值存入定义的数组,如图18 图16 图17 图18 这样就完成了,可以编译了。 倒腾了半天,希望看看效果,确认是不是对的,所以就用ST-LINK在线调试来查看adcValue数组的值吧。如图19所示。 图19 在线调试 在while(1)处设置断点,全速运行,将adcValue添加到Watch 1,可从中查看多次采样的值。 如果再添...
1ADC1ADC1_IN0PA0ADC1通道01、APB2总线。2、ADC1_IN16连接的是内部温度传感器。3、ADC1_IN17连接的是VREFINT。 2ADC1_IN1PA1ADC1通道1 3ADC1_IN2PA2ADC1通道2 4ADC1_IN3PA3ADC1通道3 5ADC1_IN4PA4ADC1通道4 6ADC1_IN5PA5ADC1通道5 7ADC1_IN6PA6ADC1通道6 8ADC1_IN7PA7ADC1通道7 9ADC1...
1、采用的微控制器为STM32F103RCT6,该微控制器采用Cortex-M3体系结构,它拥有的资源包括: 48KB SRAM、 256KB FLASH、 2 个基本定时器、 4 个通用定时器、 2 个高级定时器、 2个 DMA 控制器(共 12 个通道)、 3 个 SPI、 2 个 IIC、 5 个串口、 1 个 USB、 1 个 CAN、 3 个 12位 ADC、 1 个...
ADC_InitTypeDef t_adc; RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);//使能ADC1时钟 t_adc.ADC_Mode = ADC_Mode_Independent; //独立模式:ADC1与ADC2独立 t_adc.ADC_ScanConvMode = DISABLE; //禁用通道扫描 t_adc.ADC_ContinuousConvMode = DISABLE; //禁用连续转换 t_adc.ADC_ExternalTrigConv...
1、采用的微控制器为STM32F103RCT6,该微控制器采用Cortex-M3体系结构,它拥有的资源包括:48KB SRAM、256KB FLASH、2个基本定时器、4个通用定时器、2个高级定时器、2个DMA控制器(共12个通道)、3个SPI、2个IIC、5个串口、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口及51个通用IO口分三组,该芯...
DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue; //设置DMA内存地址,ADC转换结果直接放入该地址 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; //外设设置为数据传输的来源 DMA_InitStructure.DMA_BufferSize = 1; //DMA缓冲区设置为1; ...
12位ADC 指的是STM32F103的ADC分辨率具有12位,位数越高采集到的ADC越精准。12位是相对于二进制数来说...
再说GPIO到数组,这个我倒是有点想法。我一直想用32做个示波器,但这类东西基本满大街都是了,没什么新鲜的玩法。103系列自带的ADC最高采样率1MHZ,剩下就是算法加显示了。 如果能有个并行AD接在32外面,通过DMA快速读取,说不定能突破目前1MHZ的上限。不过目前测试效果并不算太惊艳,顶多突破到3MHZ,还要考虑数据同...
状态 /* Check the end of ADC1 calibration */ while(ADC_GetCalibrationStatus(ADC1)); //获取指定ADC1的校准程序,设置状态则等待/* Start ADC1 Software Conversion */ ADC_SoftwareStartConvCmd(ADC1, ENABLE); ADC_SoftwareStartConvCmd(ADC1, ENABLE); DMA_Cmd(DMA1_Channel1, ENABLE); //启动DMA...
PB1 ADC1_IN9 实现两个通道电压采集到DMA 确定要采集的信号通道数量, 每个信号通道要保留的采样数, 比如下面的例子中是2个通道, 每个通道4个采样 根据上面的数量得到ARRAYSIZE, 声明用于DMA的内存变量__IO uint16_t ADCConvertedValue[ARRAYSIZE] 初始化时钟: ADC1, GPIOA, DMA1 ...