stm32F407ADC采样配置
来源:互联网 发布:cnc模拟软件 编辑:程序博客网 时间:2024/06/01 18:58
这几天在调试Stm32F407AD部分,需要对两路信号进行采样处理,还是运用网上推荐的DMA方式进行数据存储传送。
在配饰ADC和DMA中对AD部分有了一些深入的了解。F407AD有规格转换组和注入组,感觉两种方式没有多大的区别,暂时只用到规则组。在配饰AD时,只需要配置通道数和通道的转换顺序即可,相应的通道在芯片中已经确定,比喻PA0为通道1,PC0为通道10,这些都已经确定。
ADC_InitStructure.ADC_NbrOfConversion = 2; 总通道数,
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_3Cycles);
ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 2, ADC_SampleTime_3Cycles); 设置的两路通道转换顺序, 管教PA0和PC0两路,通道0先,通道11后转换。根据硬件电路配置相应的通道。
ADC出发方式可以设置软件触发和外部定时器触发,我运用了Tim8的CC1进行触发,Tim8的配置跟普通定时器相同,配置CC1。ADC_InitStructure.ADC_ExternalTrigConvEdge =ADC_ExternalTrigConvEdge_Rising ;选择一种触发方式。
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T8_CC1; 可以是其他的定时触发。
配置扫描模式和循环模式。
因为要两路信号不停的进行采样,需要利用DMA进行数据传输,如果利用EOC中断可能会导致数据的错误。
在DMA进行配置时, 内存外设的大小结构要一致。在调试之初,将存储数组定义为32位,而在配置DMA时将
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; 都设置成HalfWord,这样导致采样的数据出现了错位,这里设置的大小要和定义的数组大小位数相同。
程序是想利用DMA的传输,将两组采样数据进行切换保存在到数组中,但后来测试AD只能进行一次转换,只对通道1进行转换,转化结果正确。至此没有明白DMA内部是如何传输,传输的内存地址在何时进行增加。目前通过中断和半中断可以将采样的数据进行保存,DMA不存在错位现象,正确对数据进行采样。
- stm32F407ADC采样配置
- 采样
- 采样
- 三次缓存,imgloder配置,二次采样
- 关于STM32F4中ADC多通道连续采样的配置
- 关于STM32中ADC多通道连续采样的配置
- mysql5.5、5.6统计信息采样配置及分析表
- 上采样 下采样
- 采样之拒绝采样
- 降采样,过采样,欠采样,子采样,下采样
- 降采样,过采样,欠采样,子采样,下采样
- 采样频率
- 色度采样
- 重采样
- 纹理采样
- 动态采样
- 采样定理
- 纹理采样
- 记录-SqlServer 重建索引
- 浮点型小数转为二进制数。
- 2014-05-06 我日
- k-d tree算法的研究
- wikioi1174 靶形数独 搜索
- stm32F407ADC采样配置
- 二进制的应用之暴力取状态
- jquery之动态级联下拉列表
- 能量项链_DP
- 《c primer》第234页,loccheck程序
- 基于数组的优先级队列
- 我心目中的代码三要素
- TextView超过了多行,添加省略号
- 如何把UltraEdit加入到系统右键菜单中