国庆二pwm

PWM.H

#ifndef __PWM_H__              
#define __PWM_H__              
                               
#include"stm32mp1xx_gpio.h"    
#include"stm32mp1xx_rcc.h"     
#include"stm32mp1xx_tim.h"     
                                                                                            
void pwm_init();                                             
void fengshan_init();                                         
void mada_init();              
                                                     
#endif      

PWM.C

#include "pwm.h"                                    
                                                    
void pwm_init()                                     
{                                                   
    RCC->MP_AHB4ENSETR |=0X1<<1;                    
    RCC->MP_APB1ENSETR |=0X1<<2;                    
                                                    
                                                    
    GPIOB->MODER &=(~(0X3<<12));                    
    GPIOB->MODER |=(0X1<<13);                       
                                                    
    GPIOB->AFRL &=(~(0XF<<24));                     
    GPIOB->AFRL |=0X1<<25;                          
                                                                                                     
    TIM4->CCMR1 &=(~(0X3<<0));                      
    TIM4->CCMR1 |=0X1<<3;                           
    TIM4->CCMR1 &=(~(0X7<<4));                      
    TIM4->CCMR1 |=0X6<<4;                           
    TIM4->CCMR1 &=(~(0X1<<16));                     
                                                    
    TIM4->CCER |=0X1<<0;                            
    TIM4->CCER &=(~(0X1<<1));                       
    TIM4->CCER |=0X1<<3;                            
                                                    
    TIM4->PSC=208;                                  
                                                    
    TIM4->ARR =1000;                                
                                                    
    TIM4->CCR1 =700;
        
    TIM4->CR1 &=(~(0XF<<4));                        
    TIM4->CR1 |=0X9<<4;                             
    TIM4->CR1 |=0X1<<0;                                                         
                                                    
}                                                   
void fengshan_init()                                
{                                                   
    RCC->MP_AHB4ENSETR |=0X1<<4;                    
    RCC->MP_APB2ENSETR |=0X1<<0;                    
                                                    
    GPIOE->MODER &=(~(0X3<<18));                    
    GPIOE->MODER |=(0X1<<19);                       
                                                    
    GPIOE->AFRH &=(~(0XF<<4));                      
    GPIOE->AFRH |=0X1<<4;                           
                                                                                                                               
    TIM1->CCMR1 &=(~(0X3<<0));                      
    TIM1->CCMR1 |=0X1<<3;                           
    TIM1->CCMR1 &=(~(0X7<<4));                      
    TIM1->CCMR1 |=0X6<<4;                           
    TIM1->CCMR1 &=(~(0X1<<16));                     
                                                    
    TIM1->CCER |=0X1<<0;                            
    TIM1->CCER &=(~(0X1<<1));                       
    TIM1->CCER |=0X1<<3;                            
                                                    
    TIM1->PSC=208;                                  
                                                    
    TIM1->ARR=1000;                                 
                                                    
    TIM1->CCR1=700;                                 
                                                    
    TIM1->BDTR |=0X1<<15; 
     
    TIM1->CR1 &=(~(0XF<<4));                        
    TIM1->CR1 |=0X9<<4;                             
    TIM1->CR1 |=0X1<<0;                             
                                                    
}                                                   
                                                    
void mada_init()                                    
{                                                   
    RCC->MP_AHB4ENSETR |=0X1<<5;                    
    RCC->MP_APB2ENSETR |=0X1<<3;                    
                                                    
    GPIOF->MODER &=(~(0X3<<12));                    
    GPIOF->MODER |=(0X1<<13);                       
                                                    
    GPIOF->AFRL &=(~(0XF<<24));                     
    GPIOF->AFRL |=0X1<<24;                          
                                                                                                                                                                                    
    TIM16->CCMR1 &=(~(0X3<<0));                     
    TIM16->CCMR1 |=0X1<<3;                          
    TIM16->CCMR1 &=(~(0X7<<4));                     
    TIM16->CCMR1 |=0X6<<4;                          
    TIM16->CCMR1 &=(~(0X1<<16));                    
                                                    
    TIM16->CCER |=0X1<<0;                           
    TIM16->CCER &=(~(0X1<<1));                      
    TIM16->CCER |=0X1<<2;                           
    TIM16->CCER |=0X1<<3;                           
                                                    
    TIM16->PSC=208;                                 
                                                    
    TIM16->ARR=1000;                                
                                                    
    TIM16->CCR1=700;                                
                                                    
    TIM16->BDTR |=0X1<<15;       
  
    TIM16->CR1 |=0X1<<7;                            
    TIM16->CR1 |=0X1<<0;                       
                                                    
}           

MAIN.C

#include "pwm.h"

extern void printf(const char *fmt, ...);
void delay_ms(int ms)
{
    int i,j;
    for(i = 0; i < ms;i++)
        for (j = 0; j < 1800; j++);
}


int main()
{
    fengshan_init();                           
    while(1)
    {
    }
    return 0;
}

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值