初级会员

- 积分
- 199
- 金钱
- 199
- 注册时间
- 2020-10-9
- 在线时间
- 34 小时
|
1金钱
adc.c
static void ADC_GPIO_Config(void)
{
GPIO_InitTypeDef gpio;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
gpio.GPIO_Pin=GPIO_Pin_7;
gpio.GPIO_Mode=GPIO_Mode_AIN;
GPIO_Init(GPIOA,&gpio);
}
static void ADC_Mode_Config(void)
{
ADC_InitTypeDef adc;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC2,ENABLE);
adc.ADC_Mode=ADC_Mode_Independent;
adc.ADC_ScanConvMode=DISABLE;
adc.ADC_ContinuousConvMode=ENABLE;
adc.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;
adc.ADC_DataAlign=ADC_DataAlign_Right;
adc.ADC_NbrOfChannel=1;
ADC_Init(ADC2,&adc);
RCC_ADCCLKConfig(RCC_PCLK2_Div8);
ADC_RegularChannelConfig(ADC2,ADC_Channel_7,1,ADC_SampleTime_55Cycles5);
ADC_ITConfig(ADC2,ADC_IT_EOC,ENABLE);
ADC_Cmd(ADC2,ENABLE);
ADC_ResetCalibration(ADC2);
while (ADC_GetResetCalibrationStatus(ADC2));
ADC_StartCalibration(ADC2);
while(ADC_GetCalibrationStatus(ADC2));
ADC_SoftwareStartConvCmd(ADC2,ENABLE);
}
static void ADC_NVIC_Config(void)
{
NVIC_InitTypeDef nvic;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
nvic.NVIC_IRQChannel=ADC1_2_IRQn;
nvic.NVIC_IRQChannelPreemptionPriority=1;
nvic.NVIC_IRQChannelSubPriority=1;
nvic.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&nvic);
}
uint16_t ADC_ConvertedValue;
void ADC1_2_IRQHandler(void)
{
if(ADC_GetITStatus(ADC2,ADC_IT_EOC)==SET)
{
ADC_ConvertedValue=ADC_GetConversionValue(ADC2);
}
ADC_ClearITPendingBit(ADC2,ADC_IT_EOC);
}
void ADCx_Init(void)
{
ADC_GPIO_Config();
ADC_Mode_Config();
ADC_NVIC_Config();
}
main.c
#include "stm32f10x.h"
extern uint16_t ADC_ConvertedValue;
uint16_t ADC_ConvertedValueLocal;
uint16_t ge,yi,er;
int main(void)
{
SystemInit();
delay_init(72);
USART_Config_Init();
ADCx_Init();
LCD_Init();
ADC_ConvertedValueLocal=(float) (ADC_ConvertedValue/4096)*3.3;
ge=(ADC_ConvertedValueLocal*100)/100+48;
yi=(ADC_ConvertedValueLocal*100)%100/10+48;
er=(ADC_ConvertedValueLocal*100)%10+48;
PutGB1632(0,0*16,ge,BLACK,WHITE);
PutGB1632(0,1*16,'.',BLACK,WHITE);
PutGB1632(0,2*16,yi,BLACK,WHITE);
PutGB1632(0,3*16,er,BLACK,WHITE);
while(1)
{
}
}
|
最佳答案
查看完整内容[请看2#楼]
现在通过LED灯来检测程序,在进行到液晶显示屏初始化时会令一个LED灯不亮,注释了液晶显示屏初始化后LED灯都正常亮。
|