黄工无刷电机学习
直播中

陈杰

7年用户 1408经验值
私信 关注
[问答]

如何去编写霍尔开环模式的代码

霍尔和uvw的对应关系是怎样的?

如何去编写霍尔开环模式的代码?

回帖(1)

李笑才

2021-9-22 17:41:53
  根据STM32驱动无刷直流电机学习(2)测量出 霍尔和uvw 的对应关系
  a.电源输入3线 u+ v- 霍尔的三线输出 110/010 就是 6/2 (理论上是2 但是测量出来是 6 应该是安装精度的问题)
  b.电源输入3线 u+ w- 霍尔的三线输出 011 就是 3
  c.电源输入3线 v+ w- 霍尔的三线输出 001 就是 1
  d.电源输入3线 v+ u- 霍尔的三线输出 101 就是 5
  e.电源输入3线 w+ u- 霍尔的三线输出 100 就是 4
  f.电源输入3线 w+ v- 霍尔的三线输出 110 就是 6
  那么我的做法是 霍尔输出 和 驱动 相差120度 H 代表 霍尔输出
  H2---c H3---d H1---e H5---f H4---a H6---b
  开环模式代码如下
  const pFunction Hall2UVW[]={
  NULL, //0
  Drv4, //1
  Drv2, //2
  Drv3, //3
  Drv0, //4
  Drv5, //5
  Drv1, //6
  NULL, //7
  };
  void RunMotorTask(void)
  {
  INT8U hallcur,hallold=0xff;
  SysTick_CounterCmd(SysTick_Counter_Enable); //系统时钟开始计数
  DcMotorTim1Init(PWM_PAUSE,1000);
  SetPinState(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8,GPIO_Mode_IPU);
  OSQPost(OSQDebug,(void*)‘0’);
  do{
  OSTimeDly(OS_TICKS_PER_SEC/1000);
  hallcur=(GPIOC-》IDR》》6)&0x07;
  if(hallcur!=hallold && hallcur!=0 && hallcur!=7)
  {
  hallold=hallcur;
  Hall2UVW[hallcur]();
  //USARTX-》DR=‘0’+hallcur;
  }
  }while(1);
  }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分