问答

汇集网友智慧,解决技术难题

Winpro-Dora

TA的家园币:8  

  • AMP32F030怎么配置TIM1的CH1,CH2,CH3输出PWM?

    用ST的标准库配置PA8,PA9,PA10输出TIM1的PWM,一直没输出,代码如下:RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;//GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_PinAFConfig(GPIOA,GPIO_PinSource8,GPIO_AF_2);//TIM1_CH1GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_2);//TIM1_CH2GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_2);//TIM1_CH3RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);//使能定时器1TIM_TimeBaseStructure.TIM_Period=1000-1;//ARRTIM_TimeBaseStructure.TIM_Prescaler=48-1;//PSCTIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseStructure.TIM_RepetitionCounter=0;TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;//通道输出使能TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Disable;//互补通道关闭TIM_OCInitStructure.TIM_Pulse=500;//初始占空比CCR1=0TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;//有效电平高TIM_OC1Init(TIM1,&TIM_OCInitStructure);TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable);//使能CCR预装载TIM_OC2Init(TIM1,&TIM_OCInitStructure);TIM_OC2PreloadConfig(TIM1,TIM_OCPreload_Enable);//使能CCR预装载TIM_OC3Init(TIM1,&TIM_OCInitStructure);TIM_OC3PreloadConfig(TIM1,TIM_OCPreload_Enable);//使能CCR预装载TIM_BDTRInitStructure.TIM_OSSRState=TIM_OSSRState_

    输出 F030

    2026-07-13 10
  • APM32F003F4P6休眠后起来重新初始化ADC,无法进行AD转换

    voidADC_Init(void){ADC_Config_TadcConfig;GPIO_Config_TgpioConfig;ADC_Reset();/*ADCGPIOconfiguration*///pd5,pd6asdiffch3gpioConfig.pin=GPIO_PIN_5|GPIO_PIN_6;//nowuseanddebuggpioConfig.mode=GPIO_MODE_IN_FLOATING;gpioConfig.speed=GPIO_SPEED_10MHz;gpioConfig.intEn=GPIO_EINT_DISABLE;GPIO_Config(GPIOD,&gpioConfig);ADC_ConfigDivider(ADC_DIV_2);//ADC_SetMode(ADC_MODE_SINGLE_END);/*ADCconfiguration*/ADC_ConfigStructInit(&adcConfig);ADC_Config(&adcConfig);//ADC_EnableInterrupt(ADC_INT_CC);ADC_ConfigConversionMode(ADC_CONV_MODE_CONTINUOUS);#if1ADC_SetMode(ADC_MODE_DIFF_INPUT);ADC_SetDiffInputChannel(ADC_DIFF_CHANNEL_VAIN2);#elseADC_SetChannel(ADC_CHANNEL_5);#endif////NVIC_EnableIRQRequest(ADC_IRQn,0X01);ADC_Enable();ADC_StartConversion();//fg_detect_start=TRUE;START_TIMER(w_delay_start,TIMER_1MS_3S);}上单初始化用这个函数,休眠后起来也用这个函数初始化,发现if(ADC_ReadStatusFlag(ADC_FLAG_CC)==SET)这个一直不成立,试过单端模式,也是一样的情况重新初始化也不行,查看寄存器,配置正常,但是CCF不能被置位,起来后会开启ADCclock

    ADC AD转换 IO APM32F003 F4 ONFI

    2026-04-08 7