OpenEdv-开源电子网

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

ADC和ADC为什么会相互干扰?

[复制链接]

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-1-24
在线时间
0 小时
发表于 2015-11-14 17:07:50 | 显示全部楼层 |阅读模式
5金钱
有没有人遇到过这种现象,给RTC定闹钟后ADC就采集不回数据了,ADC标志位也不置位,这是为什么啊
这时闹钟程序
void Alarm_Config(uint8_t Hour,uint8_t Minute,uint8_t Second)
{
EXTI_InitTypeDef EXTI_InitInstructure;
RTC_AlarmTypeDef RTC_AlarmInstructure;
NVIC_InitTypeDef NVIC_InitStructure;

/* Enable the PWR clock */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

  /* Allow access to RTC */
  PWR_BackupAccessCmd(ENABLE);

RTC_AlarmCmd(RTC_Alarm_A,DISABLE);

RTC_AlarmInstructure.RTC_AlarmDateWeekDay =RTC_Weekday_Saturday;//????????????????week?ò????????RTC_Weekday_Friday?®?à????????????Date?ò????0~31
RTC_AlarmInstructure.RTC_AlarmDateWeekDaySel=RTC_AlarmDateWeekDaySel_WeekDay;//°?????????°???????
RTC_AlarmInstructure.RTC_AlarmMask =RTC_AlarmMask_None;//???·?????±·???
RTC_AlarmInstructure.RTC_AlarmTime.RTC_H12 =RTC_H12_AM;
RTC_AlarmInstructure.RTC_AlarmTime.RTC_Hours=Hour;
RTC_AlarmInstructure.RTC_AlarmTime.RTC_Minutes=Minute;
RTC_AlarmInstructure.RTC_AlarmTime.RTC_Seconds=Second;

RTC_SetAlarm(RTC_Format_BIN,RTC_Alarm_A,&RTC_AlarmInstructure);

RTC_ClearFlag(RTC_FLAG_ALRAF);

RTC_ITConfig(RTC_IT_ALRA,ENABLE);

RTC_AlarmCmd(RTC_Alarm_A,ENABLE);

EXTI_InitInstructure.EXTI_Line =EXTI_Line17;
EXTI_InitInstructure.EXTI_LineCmd=ENABLE;
EXTI_InitInstructure.EXTI_Mode =EXTI_Mode_Interrupt;
EXTI_InitInstructure.EXTI_Trigger=EXTI_Trigger_Rising;
EXTI_Init(&EXTI_InitInstructure);

NVIC_InitStructure.NVIC_IRQChannel = RTC_Alarm_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

}


卡死在这个while中


float temperature_voltage_read(void)
{
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_56Cycles);
ADC_SoftwareStartConv(ADC1);
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));
return ADC_GetConversionValue(ADC1)*3.3/0XFFF;//
}

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

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5785
金钱
5785
注册时间
2013-11-22
在线时间
1213 小时
发表于 2015-11-14 22:20:41 | 显示全部楼层
代码倒数第四行 ADC_SoftwareStartConv(ADC1);是 你自己写的函数么?
改为 ADC_SoftwareStartConvCmd(ADC1, ENABLE);试试
回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-1-24
在线时间
0 小时
 楼主| 发表于 2015-11-14 23:05:13 | 显示全部楼层
然而我用的是STM32F4
对应的库函数是这样的

回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-1-24
在线时间
0 小时
 楼主| 发表于 2015-11-15 10:51:59 | 显示全部楼层
把这部分屏蔽ADC就能采集了,


这一部分配置有问题吗?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-17 04:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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