根据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);
}
根据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);
}
举报