野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1584|回复: 1

求助,关于TB6612驱动直流电机的正反转问题

[复制链接]
回帖奖励 10 火花 回复本帖可获得 10 火花奖励! 每人限 1 次
发表于 2023-8-16 13:25:28 | 显示全部楼层 |阅读模式
在做循迹小车项目中,使用tb6612驱动直流电机时,使用resetbits和setbits函数能使左轮正向转,但是切换到反转(相对正转)的代码时,电机不转,没反应,而右轮的电机正反转都能行;

因为要先测试电机的正反转功能所以没有调用pwm的代码,左右轮电机对应的pwm_a,pwm_b(PB6,PB7)接口都设置为了高电平,6个gpio都设置为了普通的推挽输出模式;
下载了商家的代码,左轮是可以实现正反转的,但是商家的代码是利用位带操作来输出高低电平的,我使用的是固件库,本来想试试寄存器输出高低电平的代码,但是不会写,感觉本质上和标准库的一样,
求各位大佬指点指点,不清楚是那里的问题,在这里卡了好久,难受。

  1. [code]
  2. #include "stm32f10x.h"        //相当于51中的  #include <reg51.h>
  3. #include "Car_action.h"

  4. int main(void)
  5. {
  6.         Car_Init();
  7.         GPIO_ResetBits(GPIOB,GPIO_Pin_4);
  8.         GPIO_ResetBits(GPIOB,GPIO_Pin_5);
  9.         GPIO_ResetBits(GPIOB,GPIO_Pin_6);
  10.         GPIO_ResetBits(GPIOB,GPIO_Pin_7);
  11.         GPIO_ResetBits(GPIOB,GPIO_Pin_8);
  12.         GPIO_ResetBits(GPIOB,GPIO_Pin_9);

  13.         while(1)
  14.         {
  15.                 //前三行没作用,本该是左轮后转的
  16. //                GPIO_SetBits(GPIOB,GPIO_Pin_6);
  17. //                GPIO_SetBits(GPIOB,GPIO_Pin_5);
  18. //                GPIO_ResetBits(GPIOB,GPIO_Pin_4);
  19.                
  20.                 //换成该函数依旧行不通
  21. //                GPIO_WriteBit(GPIOB,GPIO_Pin_6,Bit_SET);
  22. //                GPIO_WriteBit(GPIOB,GPIO_Pin_5,Bit_SET);
  23. //                GPIO_WriteBit(GPIOB,GPIO_Pin_4,Bit_RESET);
  24.                
  25.                 //左轮前转
  26. //                GPIO_SetBits(GPIOB,GPIO_Pin_6);
  27. //                GPIO_SetBits(GPIOB,GPIO_Pin_4);
  28. //                GPIO_ResetBits(GPIOB,GPIO_Pin_5);
  29.                
  30.                 //右轮后转
  31. //                GPIO_SetBits(GPIOB,GPIO_Pin_7);       
  32. //                GPIO_SetBits(GPIOB,GPIO_Pin_8);
  33. //                GPIO_ResetBits(GPIOB,GPIO_Pin_9);
  34.        
  35.                 //右轮前转
  36.                 GPIO_SetBits(GPIOB,GPIO_Pin_7);       
  37.                 GPIO_SetBits(GPIOB,GPIO_Pin_9);
  38.                 GPIO_ResetBits(GPIOB,GPIO_Pin_8);

  39.         }

  40. }



复制代码
[/code]




回复

使用道具 举报

 楼主| 发表于 2023-8-16 13:43:52 | 显示全部楼层
刚刚把循环里的那段代码放到商家给的代码环境里跑了下,发现都没问题,那应该就是我的环境文件配置问题了应该;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-21 19:21 , Processed in 0.032669 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表