你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32电机培训】- 实验4:基于MCSDK5.0 状态的切换

[复制链接]
TLLED 发布时间:2018-9-1 22:40
本帖最后由 TLLED 于 2018-9-1 22:40 编辑

实验4:基于MCSDK5.0 状态的切换。
一、实验内容要求如下:
5.png
1.png
2.png
3.png
4.png

二、实验代码修改:
修改main.c代码,修改的部分如下(红色字体)
int main(void)
{
  /* USER CODE BEGIN 1 */
  State_t  ste;     //定义变量
  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_ADC1_Init();
  MX_DAC_Init();
  MX_TIM1_Init();
  MX_USART2_UART_Init();
  MX_MotorControl_Init();

  /* Initialize interrupts */
  MX_NVIC_Init();
  /* USER CODE BEGIN 2 */
  MC_StartMotor1();                                                       //启动电机
  HAL_Delay(1000);
  MC_ProgramSpeedRampMotor1(3000/6,1000);  //正转3000转
  HAL_Delay(10000);                                                      //延时10s
  MC_ProgramSpeedRampMotor1(-3000/6,1000);    //反转3000转
  HAL_Delay(2000);

  /* USER CODE END 2 */


  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    ste=MC_GetSTMStateMotor1();             //获取电机任务状态
    if(ste==FAULT_OVER)                              //电机报错
    {
      MC_AcknowledgeFaultMotor1();           //清除故障
      
    }
    else if(ste == IDLE)                                  //恢复故障后,电机负3000转运行
    {
      MC_StartMotor1();
      MC_ProgramSpeedRampMotor1(MC_GetLastRampFinalSpeedMotor1(), 1000);
    }

  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
    //State t sts_motor1 = MCI_GetSTMStateMotor1();
    //STM_GetFaultState(&STM[M1]);


  }
  /* USER CODE END 3 */

}


三、执行结果:
6.png
7.png







收藏 评论2 发布时间:2018-9-1 22:40

举报

2个回答
STMCU-管管 回答时间:2018-9-11 14:28:44
谢谢分享
xiaozhou       回答时间:2020-12-30 17:22:30
好尴尬啊,为啥我的出不了故障,只添加了
  1.   /* USER CODE BEGIN 2 */
  2.                         
  3.   MC_ProgramSpeedRampMotor1(3000/6,1000);  
  4.         MC_StartMotor1();  
  5.   HAL_Delay(5000);                        
  6.   MC_ProgramSpeedRampMotor1(-3000/6,1000);
  7.   
  8.   /* USER CODE END 2 */
复制代码

可以顺利切换,从3000到-3000...

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版