OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3826|回复: 4

求助,STM32外部触发ADC转换的程序问题。

[复制链接]

1

主题

6

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2016-3-3
在线时间
3 小时
发表于 2016-4-4 00:12:19 | 显示全部楼层 |阅读模式
1金钱
搜了很多资料啊,都没找到相关的例程,我用的是F103ZET6。我想通过按键触发ADC1采样,现在的困惑是我配置好了ADC让它外部触发等,如何和按键联系起来呢?学了没多久,麻烦了。。。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2016-3-3
在线时间
3 小时
 楼主| 发表于 2016-4-4 00:20:39 | 显示全部楼层
噢我知道了要配置EXTI吧
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2016-3-3
在线时间
3 小时
 楼主| 发表于 2016-4-4 00:47:44 | 显示全部楼层

void ADC1Configuration1(void)
{    ADC_InitTypeDef  ADC_InitStructure;
      /* ADC1 Configuration ------------------------------------------------------*/
      ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;////ADC¹¤×÷ģʽ:¶ÀÁ¢Ä£Ê½
      ADC_InitStructure.ADC_ScanConvMode = DISABLE;//ADµ¥Í¨µÀģʽ
      ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//Á¬Ðø×ª»¯
      ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_Ext_IT11_TIM8_TRGO;//ÍⲿÖжÏÏß11´¥·¢-£¿
      ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//ÓÒ¶ÔÆë
      ADC_InitStructure.ADC_NbrOfChannel = 1;//µ¥Í¨µÀ
      ADC_Init(ADC1, &ADC_InitStructure);//¸ù¾ÝÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèADCxÆ÷

   //   /* ADC1 regular channel8 configuration */


     ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 1, ADC_SampleTime_239Cycles5);//Ñ¡ÔñͨµÀ8,²ÉÑùʱ¼äΪ1.5ÖÜÆÚ
   
      /* Configure high and low analog watchdog thresholds */
      ADC_AnalogWatchdogThresholdsConfig(ADC1, 0x0B00, 0x0300);//Ä£Äâ¿´ÃŹ·µÄ¸ß¡¢µÍãÐÖµ
      /* Configure channel8 as the single analog watchdog guarded channel */
      ADC_AnalogWatchdogSingleChannelConfig(ADC1, ADC_Channel_8);//channe8±»ÉèÖÃÄ£Äâ¿´ÃŹ·
      /* Enable analog watchdog on one regular channel */
      ADC_AnalogWatchdogCmd(ADC1, ADC_AnalogWatchdog_SingleRegEnable);//µ¥¸ö¹æÔòͨµÀÉÏÉèÖÃÄ£Äâ¿´ÃŹ·

       /* Disable AWD,EOC interupt */
     ADC_ITConfig(ADC1, ADC_IT_EOC | ADC_IT_AWD , DISABLE);//ÖÐ¶ÏÆÁ±Î¹Ø±Õ
   
     /* Enable DMA Convert */
     ADC_DMACmd(ADC1,ENABLE);//ʹÄÜDMAÇëÇó

      /* Enable ADC1 */
      ADC_Cmd(ADC1, ENABLE);//ʹÄÜADC


      /* Enable ADC1 reset calibaration register */   
      ADC_ResetCalibration(ADC1);//¿ªÆô¸´Î»Ð£×¼
      /* Check the end of ADC1 reset calibration register */
      while(ADC_GetResetCalibrationStatus(ADC1));//µÈ´ý¸´Î»Ð£×¼½áÊø

      /* Start ADC1 calibaration */
      ADC_StartCalibration(ADC1);//¿ªÆôADУ׼
      /* Check the end of ADC1 calibration */
      while(ADC_GetCalibrationStatus(ADC1));//µÈ´ýУ׼½áÊø

      /* Start ADC1 Software Conversion */
      //ADC_SoftwareStartConvCmd(ADC1, ENABLE);//ʹÄÜADC1µÄÈí¼þת»»Æô¶¯
      ADC_ExternalTrigInjectedConvCmd(ADC1, ENABLE);//ʹÄÜADC1µÄÍⲿת»»Æô¶¯

}
void EXIT_Configuration(void)
{
    GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource13);//ÉèÖÃÓ³Éä¹ØÏµC13

EXTI_InitTypeDef EXTI_InitStructure;
  /* Configure Key Button EXTI Line to generate an interrupt on falling edge */  
  EXTI_InitStructure.EXTI_Line = EXTI_Line11;//Íⲿ11Ïß´¥·¢
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
}


请问各位我的C13口是按键 我这样配置了之后按下这个键就可以开启AD转换了吗?感激不尽

回复

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2016-3-3
在线时间
3 小时
 楼主| 发表于 2016-4-4 00:50:30 | 显示全部楼层
因为开发板USB供电的接口焊盘掉下来了 所以暂时验证不了
回复

使用道具 举报

10

主题

212

帖子

0

精华

高级会员

Rank: 4

积分
745
金钱
745
注册时间
2019-4-8
在线时间
226 小时
发表于 2019-7-12 15:52:22 | 显示全部楼层
楼主 后来搞定了没
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-12 20:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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