zi约 发表于 2017-9-26 16:02:16

关于X-CUBE-SPN7的库

有大神把这个库研究的很明白的吗?我现在刚开始做电机控制,用的STM32的芯片,想从这个库开始着手,现在手上没有ST对应的开发板,不过有一个其他的板子,准备做BLDC的无感,但是看这个库没看怎么明白,不知道从哪里开始,这个库给的例程好像不完整,不是一个能让电机跑的工程,大神们有没有已经跑过的相关工程可以发我参考下,或者留个联系方式,咨询下。

zero99 发表于 2017-9-26 17:11:31

之前有个官方电机的培训,希望对楼主有帮助:https://www.stmcu.org.cn/module/forum/thread-612763-1-1.html

zi约 发表于 2017-9-27 07:43:23

zero99 发表于 2017-9-26 17:11
之前有个官方电机的培训,希望对楼主有帮助:https://www.stmcu.org.cn/module/forum/thread-612763-1-1.html ...

额,谢谢,不过这个好像都主要是针对PMSM的FOC算法的,不是针对BLDC

zi约 发表于 2017-9-27 09:14:25

void MC_ADCx_SixStep_Bemf()    //¼ÆËã¹ýÁãµã
{

if(__HAL_TIM_DIRECTION_STATUS(&HF_TIMx))
{   
HAL_GPIO_WritePin(GPIO_PORT_COMM,GPIO_CH_COMM,GPIO_PIN_SET);      
   /* UP-counting direction started */
   /* GET the ADC value (PHASE CURRENT)*/
   if(SIXSTEP_parameters.STATUS != START && SIXSTEP_parameters.STATUS != ALIGNMENT)   
   {
   switch (SIXSTEP_parameters.step_position)
   {
      case 6:
      {
       if(SIXSTEP_parameters.demagn_counter >= SIXSTEP_parameters.demagn_value)
       {
      SIXSTEP_parameters.ADC_BUFFER = HAL_ADC_GetValue(&ADCx);
      if(PI_parameters.Reference>=0)
      {
         if(SIXSTEP_parameters.ADC_BUFFER> SIXSTEP_parameters.ADC_BEMF_threshold_UP)
         {      
            MC_SixStep_ARR_Bemf(1);
            SIXSTEP_parameters.BEMF_Tdown_count = 0;   
         }
      }
      else
      {
         if(SIXSTEP_parameters.ADC_BUFFER< SIXSTEP_parameters.ADC_BEMF_threshold_DOWN)   
         {
            MC_SixStep_ARR_Bemf(0);
         }
      }
       }
       else SIXSTEP_parameters.demagn_counter++;
      }
      break;

这个库函数里面过零点检测的语句是 if(SIXSTEP_parameters.ADC_BUFFER> SIXSTEP_parameters.ADC_BEMF_threshold_UP)这句吗??看不懂是什么意思啊?谁能解释下吗?

zi约 发表于 2017-9-27 09:16:17

还有void MC_SixStep_ARR_Bemf(uint8_t up_bemf)   这个函数是用来干嘛的??(也是库函数里面的,与过零点检测函数配合使用),一直都没搞懂这两个函数的意思。。。
页: [1]
查看完整版本: 关于X-CUBE-SPN7的库