打印

STM32的GPIO高电平是30MV怎么回事,代码如下

[复制链接]
1589|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
604603487|  楼主 | 2013-4-27 19:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*DIANJI1定义*/
#define DIANJIL_1_H         GPIOA->BSRR = GPIO_Pin_2
#define DIANJIL_1_L         GPIOA->BRR  = GPIO_Pin_2
   
#define DIANJIL_2_H         GPIOA->BSRR = GPIO_Pin_3
#define DIANJIL_2_L         GPIOA->BRR  = GPIO_Pin_3

#define DIANJI1_read_Q      GPIOA->IDR  & GPIO_Pin_2
#define DIANJI1_read_H      GPIOA->IDR  & GPIO_Pin_3
/*DIANJI2定义*/
#define DIANJIR_1_H         GPIOA->BSRR = GPIO_Pin_4
#define DIANJIR_1_L         GPIOA->BRR  = GPIO_Pin_4
   
#define DIANJIR_2_H         GPIOA->BSRR = GPIO_Pin_5
#define DIANJIR_2_L         GPIOA->BRR  = GPIO_Pin_5

#define DIANJI2_read_Q      GPIOA->IDR  & GPIO_Pin_4
#define DIANJI2_read_H      GPIOA->IDR  & GPIO_Pin_5  

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB , ENABLE);

GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_4;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
  GPIO_Init(GPIOA, &GPIO_InitStructure);


  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_5;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
  GPIO_Init(GPIOA, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
  GPIO_Init(GPIOA, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_3;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
  GPIO_Init(GPIOA, &GPIO_InitStructure);


//-------------------------------------------------------
//PWM输出
//-------------------------------------------------------
void PWM_output (int PWM_LH,int PWM_RH)
{
        if (PWM_LH>0)
        {
            DIANJIL_1_H ;  //左电机前进           PA2_H  PA3_L
                DIANJIL_2_L ;
       
        }
        else
        {
                DIANJIL_1_L ;        //左电机后退           PA2_L  PA3_H
                DIANJIL_2_H ;
                PWM_LH*=-1;
        }
       
        if (PWM_LH>98)
        {
                PWM_LH=98;
        }
       
       
        if (PWM_RH>0)
        {
             DIANJIR_1_L ;     //右电机前进   PA4_L  PA5_H
                 DIANJIR_2_H ;            
               
        }
        else
        {
                 DIANJIR_1_H ;             //右电机后退           PA4_L  PA5_H
                 DIANJIR_2_L ;       
                  PWM_RH*=-1;          
        }
       
        if (PWM_RH>98)
        {
                PWM_RH=98;
        }
       
               
        pwm_l=PWM_LH;                       
       
        pwm_r=PWM_RH;                       
       
}
沙发
604603487|  楼主 | 2013-4-27 19:28 | 只看该作者
我知道了我是不是应该把复用推挽输出,改成推挽输出呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

59

主题

926

帖子

12

粉丝