stm32的GPIOB4用作pwm输出(寄存器操作)

1、GPIOB4为非常规io口,系统默认为jtag占用,因此先进行重映射

	    JTAG_Set(SWD_ENABLE); //关闭 JTAG,开启 SWD	
	    RCC->APB2ENR|=1<<0;      //使能AFIO
	    AFIO->MAPR&=0XFFFFF3FF;  //对应位清零
	    AFIO->MAPR|=1<<11;	     //tim3 重映射	10,tim3_ch1对应b4口  

2、初始化GPIOB4

   	   RCC->APB2ENR|=1<<3;  //GPIOB时钟使能
	   GPIOB->CRL&=0XFFF0FFFF; //初始化B4口
	   GPIOB->CRL|=0X000B0000; //4口复用推挽输出

3、初始化tim3_ch1

    	RCC->APB1ENR|=1<<1;  //使能tim3时钟
		TIM3->ARR=arr;       //设定计数器自动重装值,决定周期
		TIM3->PSC=psc;       //预分频器设置
		TIM3->CCMR1|=7<<4;   //CH1 PWM2 模式
		TIM3->CCMR1|=1<<3;   //CH1 预装载使能
		TIM3->CR1=0x0080;    //ARPE 重装载使能
		TIM3->CCER|=1<<1;    //设置极性	
    	TIM3->CCER|=1<<0;    //OC1 输出使能	
		TIM3->CR1|=0x01;     //使能定时器3计数

4、改变占空比为x (0~arr)

TIM3->CCR1 =x;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值