想用CUBE配置然后用HAL库实现F407 3ADC交替采样实现7.2MSPS采样率,网上查了很多资料,3adc交替采样的资料很少,有用寄存器配置的,但是用HAL库的基本上没有找到,只能自己摸索。
首先是Pinout,值得注意的是3ADC 交替通常用到一样的通道,我用的是0通道。
然后是时钟的配置ADC最快时钟是36MHz,所以系统最快只能在144MHz,要做相应的更改
然后是ADC设置,这里面要选择模式是Triple interleaved Mode, DMA mode 2, delay设置为5cycle,ADC采样3cycle,Clock 要选择div2,这样能才能达到最快速度。
ADC2,3 配置相类似就略过
然后是DMA配置,只需要配置ADC1的DMA就可以了。
长度要选WORD, mode注意了我选的是Normal,因为选了circule 之后数据不对,估计是中断时时候数据还没有处理完数据就已经被覆盖了。没有细究。
然后主程序里面添加以下关键代码
HAL_ADC_Start(&hadc3);
HAL_ADC_Start(&hadc2);
HAL_ADCEx_MultiModeStart_DMA(&hadc1,(uint32_t *)ADC123_Buff, 1024);
DMA中断处理数据,注意数据的高低字节,一个WORD里面有2个ADC数据。
void DMA2_Stream0_IRQHandler(void)
{
if(DMA2->LISR & 0x00000010) //完成中断
{
DMA2->LIFCR |= 0x00000010; //clear flag
//data processing...
}
}
但是这样的话DMA搬一次之后就停止了,尝试过很多种方法,函数都无法让DMA重新传输,最终发现通过反初始化ADC1再初始化ADC1,然后开ADC2,ADC3,然后开交替ADC可以实现,这样就可以等数据处理完了之后开始下一次的DMA 传输。
通过对信号发生器100khz信号的采样测试,证实能达到7.2MSPS,丝毫不差!!!
关键字:STM32 f407 3ADC 7 2Msps 采样率
引用地址:
STM32 f407 3ADC 交替 实现 7.2Msps 采样率
推荐阅读最新更新时间:2024-11-13 09:21
STM32 系统架构
简介:这里所讲的 STM32 系统架构主要针对的 STM32F103 这些非互联型芯片。STM32 主系统主要由四个驱动单元和四个被动单元构成。 四个驱动单元是: 内核DCode总线;系统总线;通用DMA1;通用DMA2; 四被动单元是: AHB到APB的桥:连接所有的APB设备;内部FlASH闪存;内部SRAM;FSMC; 下面我们具体看一下图中几个总线的知识: ①ICode总线:该总线将M3内核指令总线和闪存指令接口相连,指令的预取在该总线上面完成。 ②DCode总线:该总线将M3内核的DCode总线与闪存存储器的数据接口相连接,常量加载和调试访问在该总线上面完成。 ③系统总线:该总线连
[单片机]
联发科新品踩油门 4G LTE芯片7月量产
联发科(2454)LTE和64位元晶片大战加紧马力,据了解7月4G 8核心LTE系统单晶片MT6595将量产,第3季LTE 64位元产品也比预期时间提前1个月,产品线包括4核版本MT6732,以及8核版本的MT6752。至于3G 6核心MT6591终端机款悄悄在5月亮相,携手中国厂商夏新,定价仅在千元人民币(约4846元台币)。 3G 6核心机5月亮相 早在今年4月中,中国市场传出,搭载联发科4G 8核心MT6595晶片将由中国厂魅族捷足先登,先前魅族透露今年下半年将发布5款新品,其中1款手机售价千元人民币左右,支援4G网路,据了解这款 4G 8核心新手机7月就有望亮相。 联发科今年新品线包括1款3G 6核心M
[网络通信]
STM32非DMA模式下读取多通道AD采样值
折腾了几天了,还没有把DMA弄得明白,现在把自己做的双通道的AD采样记录一下,免得忘得太快了。 上篇文章已经讲得很详细了,对于ADC的采样,有几个结构需要初始化: RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);// 使能 ADC1时钟线 /* ADC1 configuration */ ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //独立工作模式 ADC_InitStructure.ADC_ScanConvMode = DISABLE; //扫描模式 //为了保证单次通道
[单片机]
STM32做的64通道数据采集程序
STM32做的64通道数据采集电路 采样频率30hz 效果非常 单片机源程序如下: //4.4 Repeat-sequence mode //Sequence模式时可以设置多个采样通道。在最后一个通道加上EOS就表明的采样通道结束位置。中断允许只需要设置最后一个通道。 //为了采样速率尽可能快,可设置MSC,此时当SHI上升沿触发第一次采样后,后面的采样在上一次采样结束后自动进行。 #include msp430x14x.h #include Config.h //开发板配置头文件,主要配置IO端口信息 //表区 #define ADCOK 0x01 //B0为ADC12完成转换标志
[单片机]
代工企业“伟创力”:曾扣押华为7亿人民币物料
据环球网报道,在中国珠海等地设有工厂的美国知名上市代工企业“伟创力”,曾在美国政府将中国的华为公司列入“黑名单”后,私自扣押了华为高达7亿元人民币的物料和设备。然而,伟创力并没有在华为前来索要这些物料和设备时进行归还,反而是持续将华为的物资私自扣押了1个多月之久,给华为造成了严重的损失。 私自扣下7亿多元的华为物资,拒不归还 此前,国内一些媒体曾经报道说,在华为公司于5月16日被美国商务部列入一个名为“实体清单”的“黑名单”后,总部在美国的全球知名代工厂“伟创力”便第一时间停止了与华为的一切合作,与华为现有的订单也都一并被中止了。 之后,有媒体称华为公司曾一度派出近百辆货车前往伟创力位于珠海的工厂,从那里拉回了自己的
[嵌入式]
工程师STM32单片机学习基础手记(4):用PWM实现荧火虫灯(四)
补充一些硬件知识 SEGGER 给出的Jlink引脚图 开发板上的连接图 标准的JTAG连接图,供对照参考。 调试方式既可以用JTAG,也可以用SW。 以下是转载: SWD 仿真模式概念简述 先所说 SWD 和传统的调试方式有什么不一样: 首先给大家介绍下经验之谈: (一): SWD 模式比 JTAG 在高速模式下面更加可靠。 在大数据量的情况下面 JTAG 下载程序会失败, 但是 SWD 发生的几率会小很多。 基本使用 JTAG 仿真模式的情况下是可以直接使用 SWD 模式的, 只要你的仿真器支持。 所以推荐大家使用这个模式。 (二): 在大家
[模拟电子]
STM32入门学习笔记之STM32F103环境搭建(上)
1.1 STM32F103单片机概述 ARM公司在ARM11以后的产品改用Cortex命名,主要分为三种,Cortex-M系列,Cortex-R系列和Cortex-A系列,Cortex系列属于ARMv7架构,这是2010年为止ARM公司最新的指令集架构,其中Cortex-M主要用于低端的嵌入式控制系统中,Cortex-R主要用于实时系统中,Cortex-A系列则是用于操作系统,智能设备和移动电话等领域,比如常见的Cortex-A15(用于Android,Ubuntu等系统中)。 意法半导体(ST公司)开发的STM32就属于Cortex-M架构,该架构细分又可以分为M0,M0+,M3,H7等,以最常见的STM32F103为例,该
[单片机]
STM32JTAG调试接口PB3、PB4复用问题
JTAG 接口:主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,标准接线是4根线 TMS:JTAG接口模式选择 TCK:JTAG接口时钟 TDI:JTAG接口数据输入 TDO:JTAG接口数据输出 TRST:JTAG可选引脚,功能为 测试复位、输入引脚、低电平有效 SWD接口:串行调试(Serial Wire Debug),应该可以算是一种和JTAG不同的调试模式,使用的调试协议也应该不一样,所以最直接的体现在调试接口上。标准接线为2线 SWDIO:SWD数据线 SWDCLK:SWD时钟线 SWD与JTAG相比有许多优点: 1. SWD接口相比于JTAG更加可靠 2. 使用更少的GPIO,直
[单片机]