新手入门
- 积分
- 5
- 金钱
- 5
- 注册时间
- 2017-8-9
- 在线时间
- 0 小时
|
4金钱
这是我的ADC配置
void Adc_Init(void)
{
//Ïè3õê¼»ˉIO¿ú
RCC->APB2ENR|=1<<8; //ê1ÄüADC1ê±Öó
RCC->AHB1ENR|=1<<0; //ê1ÄüPORTAê±Öó
GPIO_Set(GPIOA,PIN5,GPIO_MODE_AIN,0,0,GPIO_PUPD_PU); //PA5,Ä£Äaêäèë,ÏÂà-
GPIO_Set(GPIOA,PIN4,GPIO_MODE_AIN,0,0,GPIO_PUPD_PU); //PA5,Ä£Äaêäèë,ÏÂà-
RCC->APB2RSTR|=1<<8; //ADCs¸′λ
RCC->APB2RSTR&=~(1<<8); //¸′λ½áêø
ADC->CCR=1<<16; //ADCCLK=PCLK2/4=90/4=22.5Mhz,ADCê±Öó×îoÃ2»òa3¬1y36Mhz
ADC1->CR1=0; //CR1éèÖÃÇåáã
ADC1->CR2=0; //CR2éèÖÃÇåáã
ADC1->CR1|=0<<24; //12λÄ£ê½
ADC1->CR1|=0<<8; //·Çé¨ÃèÄ£ê½
ADC1->CR2 |=(1<<1); //×a»»Ä£ê½
ADC1->CR2&=~(1<<11); //óò¶ÔÆë
ADC1->CR2|=0<<28; //èí¼t′¥·¢
ADC1->SQR1 &= ~(0XF<<20);
ADC1->SQR1|=0<<20; //1¸ö×a»»Ôú1æÔòDòáDÖD ò2¾íêÇÖ»×a»»1æÔòDòáD1
//éèÖÃí¨μà5μÄ2éÑùê±¼ä
ADC1->SMPR2&=~(7<<(3*5));//í¨μà52éÑùê±¼äÇå¿Õ
ADC1->SMPR2|= 1<<(3*5); //í¨μà5 480¸öÖüÆú,ìá¸ß2éÑùê±¼ä¿éòÔìá¸ß¾«è·¶è
ADC1->SMPR2&=~(7<<(3*4));//í¨μà52éÑùê±¼äÇå¿Õ
ADC1->SMPR2|= 1<<(3*4); //í¨μà5 480¸öÖüÆú,ìá¸ß2éÑùê±¼ä¿éòÔìá¸ß¾«è·¶è
ADC1->CR2|=1<<0; //¿aÆôAD×a»»Æ÷
}
用的是例程的初始化 加了 PIN4 但是我用PA4接输入信号的时候就采不到点 用PA5接的时候就采的到
我用的是定时器采样
void TIM3_IRQHandler(void)
{
if(TIM3->SR&0X0001)//òç3öÖD¶Ï
{
if(state == 0)
{
if(adc_tmp <= 8190)
{
D_ADC_data[adc_tmp] = (float)Get_Adc(5);
adc_tmp += 2;
}
else
{
adc_tmp = 0;
state = 1;
TIM3->CR1 &= ~0x01; //11رն¨ê±Æ÷
}
}
if(state == 2)
{
if(adc_tmp <= 8190)
{
B_ADC_data[adc_tmp] = (float)Get_Adc(4);
adc_tmp += 2;
}
else
{
adc_tmp = 0;
state = 3;
TIM3->CR1 &= ~0x01; //11رն¨ê±Æ÷
}
}
}
TIM3->SR&=~(1<<0);//Çå3yÖD¶Ï±ê־λ
}
查不出 错了啊 好急!! 求各位大哥帮忙看一看哪里配置出了问题
定时器是没问题的 我把Get_Adc( )里的5和4互换了的话 也是PA4的引脚没有采到数据
|
|