定时器TIM2输出pwm波

#define TIM2_CLK_ENABLE()               ( RCC->APB1ENR |= RCC_APB1ENR_TIM2EN  )
#define TIM3_CLK_ENABLE()               ( RCC->APB1ENR |= RCC_APB1ENR_TIM3EN )

#define TIMx_CHANNEL_GPIOA_PORT()       ( RCC->IOPENR |= (RCC_IOPENR_GPIOAEN))
#define TIMx_CHANNEL_GPIOB_PORT()       ( RCC->IOPENR |= (RCC_IOPENR_GPIOBEN))

arm_drv_tim_pwm_channel_config (TIM2_BASE, GPIO_A, GPIO_A_15, GPIO_AF5_TIM2, TIM_CHANNEL_1);


short drv_io_config_pin( unsigned long pin, unsigned char config )
{
   
  unsigned short port, index, bits;
  GPIO_TypeDef* GPIO_Init_PORT;
  GPIO_InitTypeDef  GPIO_InitStruct;

  port = (unsigned short)(pin >> 16);   // port index for PORT A-H (0-4)
  if(port > (MAXIMUM_GPIO_PORT-1))   // only has 5 ports: PORT_[A~H]
  return 1;
  GPIO_Init_PORT = GPIO_PORT[port];
  GPIO_InitStruct.Pin = 0;

  bits = 0x8000;        // start from bit 15.

  // prepare configure register
  for( index = 0; index < 16; index++ )
  {
   
    if( pin & bits )
    {
   
      // the bit is selected.
      GPIO_InitStruct.Pin = bits;

      // config format: 0011,0001.pupd[7:6]=00=no pull-up, pull-down; ospeed[5:4]=11=high speed; otype[2]=0=push-pull;  mode[1:0]=01=output.
      GPIO_InitStruct.Mode = (GPIOMode_TypeDef) (config & 0x03); // GPIO_Mode;
      GPIO_InitStruct.OType = (GPIOO
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值