硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2469|回复: 0
收起左侧

[ADC] STM32H7的ADC选择软件触发查询式读取,使能或不使能连续转换都没有问题

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2018-9-8 01:56:10 | 显示全部楼层 |阅读模式
F4的ADC工作方式在H7上同样适用,这个是早期F429的ADC做的说明:


就是下面程序中的:ADC_InitStructure.ADC_ContinuousConvMode的配置,使能不使能都没有关系的

  1. /*ADC2的配置*****************************************************************/
  2. ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
  3. ADC_InitStructure.ADC_ScanConvMode = DISABLE;
  4. ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
  5. ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
  6. ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC2;
  7. ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  8. ADC_InitStructure.ADC_NbrOfConversion = 1;
  9.    
  10. /* ADC2 规则通道配置 */
  11. ADC_Init(ADC2, &ADC_InitStructure);
  12. ADC_RegularChannelConfig(ADC2, ADC_Channel_10, 1, ADC_SampleTime_480Cycles);

  13. /* 使能 ADC2 */
  14. ADC_Cmd(ADC2, ENABLE);
复制代码

如果用户使能为连续转换,软件触发API仅需调用一次即可,就会一直的连续转换。而一些特定的应用中,我们可以将其关闭掉,触发一次读取一次,更方便些,适合做一些电压测量的工作。

  1. /* 软件启动转换  */
  2. ADC_SoftwareStartConv(ADC2);
  3.                
  4. /* 等待转换完成 */
  5. while(ADC_GetFlagStatus(ADC2,ADC_FLAG_EOC) == RESET);

  6. /* 存储转换值 */
  7. adc_sample[index] = ADC_GetConversionValue(ADC2);
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 17:28 , Processed in 0.189771 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表