初级会员 
  
	- 积分
 - 51
 
        - 金钱
 - 51 
 
       - 注册时间
 - 2020-12-24
 
      - 在线时间
 - 12 小时
 
 
 
 | 
 
1金钱 
 本帖最后由 caixukun123 于 2022-5-11 11:27 编辑  
 
单片机使用的f429 
设置频率在10khz,占空比40%
 
 
 
 
 
附上程序 
TIM_HandleTypeDef TIM3_PWM_Handler; 
TIM_OC_InitTypeDef TIM3_PWM_OC_Init;  
void TIM3_PWM_Init(void) 
{ 
 
         
        TIM3_PWM_Handler.Instance=TIM3; 
        TIM3_PWM_Handler.Init.Prescaler=90-1;                //预分频系数 
        TIM3_PWM_Handler.Init.CounterMode=TIM_COUNTERMODE_UP;                //计数模式 
        TIM3_PWM_Handler.Init.Period=100-1;                //自动装载值                 
        HAL_TIM_PWM_Init(&TIM3_PWM_Handler); 
         
        TIM3_PWM_OC_Init.OCMode=TIM_OCMODE_PWM1;                //模式PWM1 OR PWM2,通道1在向上计数时小于为有效电平 
        TIM3_PWM_OC_Init.Pulse=40;                //设置比较值CCRx 
        TIM3_PWM_OC_Init.OCPolarity=TIM_OCPOLARITY_HIGH;                //输出比较极性,高电平为有效电平 
        HAL_TIM_PWM_ConfigChannel(&TIM3_PWM_Handler,&TIM3_PWM_OC_Init,TIM_CHANNEL_4); 
         
        HAL_TIM_PWM_Start(&TIM3_PWM_Handler,TIM_CHANNEL_4); 
         
} 
 
 
 
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim) 
{ 
         
        if(htim->Instance==TIM3)                //pwm实基参数配置为tim3时,才使能时钟和配置io口 
        { 
                __HAL_RCC_TIM3_CLK_ENABLE(); 
                __HAL_RCC_GPIOB_CLK_ENABLE(); 
                 
                GPIO_InitTypeDef GPIO_Initure; 
                 
                GPIO_Initure.Pin=GPIO_PIN_1;                        //PB1 
                GPIO_Initure.Mode=GPIO_MODE_AF_PP;                //复用推挽输出 
                GPIO_Initure.Pull=GPIO_PULLUP;                        //上拉 
                GPIO_Initure.Speed=GPIO_SPEED_FAST;                //高速 
                GPIO_Initure.Alternate=GPIO_AF2_TIM3;        //复用为TIM3 
                HAL_GPIO_Init(GPIOB,&GPIO_Initure);                   //初始化PB1 
        } 
} 
int main(void) 
{ 
 
    HAL_Init();                     //初始化HAL库    
    Stm32_Clock_Init(360,25,2,8);   //设置时钟,180Mhz 
    delay_init(180);                //初始化延时函数 
    uart_init(115200);              //初始化USART 
    LED_Init();                     //初始化LED  
    KEY_Init();                     //初始化按键 
                TIM3_PWM_Init();        //调用pwm_init 
         
 
} 
 
 
 
试了一下改变占空比,输出的频率也会改变,实在搞不懂 
 |   
 
 
 
 
 
 |