目的:根据ADC的数值开关灯
int fputc(int ch,FILE *D)
{
while(!(USART1->ISR & 1<<7)){};
USART1->TDR = ch;
return ch;
}
void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef *hadc)
{
if(hadc->Instance == ADC1)
{
printf("%d",buf);
if(buf > 3500)
{
printf("天黑了");
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_RESET);
}
else
{
printf("天亮了");
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_SET);
}
}
}
HAL_Delay(500);//每0.5秒采集一次
HAL_ADC_Start_DMA(&hadc1,&buf,1);//开始ADC采集并DNA搬运 搬运从哪搬 搬到哪 搬多少
HAL_Delay(100);//等DMA搬运完
HAL_ADC_Stop_DMA(&hadc1);//停止ADC采集和DMA搬运