注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
annysky2012的个人空间 http://home.eeworld.com.cn/space-uid-402938.html [收藏] [复制] [分享] [RSS]
日志

【基于NUCLEO-F746ZG电机开发应用】10.参数配置-GPIO端口配置

已有 86 次阅读2021-9-30 10:12 |个人分类:STM32电机应用

开发板上使用的普通GPIO端口分别是4个LED,1个按键,3个U,V,W使能引脚。暂时没有使用霍尔传感器,所以省略。

1.硬件电路设计

(1)3个U,V,W使能引脚,控制L6230PD的使能脚。其中PC10控制U相,PC11控制V相,PC12控制W相。

(2)IHM07M1开发板的运行指示灯,使用的是PB2进行控制。定义为LED4。

 

(3)NUCLEO-F746开发板的指示灯LED2和LED3,分别使用的是PB7和PB14进行控制。按键是高电平输入有效,使用的是PC13进行采集输入信号。

(4)NUCLEO-F746开发板的指示灯LED1,分别使用的是PB0进行控制。

2.软件设计

普通GPIO的软件初始化配置非常简单。这一部分可以参照其他厂家,比如正点原子、野火,进行了解,不做详细赘述。

static void MX_GPIO_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOC_CLK_ENABLE();//使能GPIOC时钟,AHB1总线
  __HAL_RCC_GPIOH_CLK_ENABLE();//使能GPIOH时钟,AHB1总线
  __HAL_RCC_GPIOA_CLK_ENABLE();//使能GPIOA时钟,AHB1总线
  __HAL_RCC_GPIOB_CLK_ENABLE();//使能GPIOB时钟,AHB1总线
  __HAL_RCC_GPIOD_CLK_ENABLE();//使能GPIOD时钟,AHB1总线

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOB, LD1_Pin|LD4_Pin|LD3_Pin|LD2_Pin, GPIO_PIN_RESET);

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOC, M1_PWM_EN_U_Pin|M1_PWM_EN_V_Pin|M1_PWM_EN_W_Pin, GPIO_PIN_RESET);

  /*Configure GPIO pin : Start_Stop_Pin */
  GPIO_InitStruct.Pin = Start_Stop_Pin;//用户按键
  GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;//下降沿触发中断
  GPIO_InitStruct.Pull = GPIO_PULLUP;//上拉模式
  HAL_GPIO_Init(Start_Stop_GPIO_Port, &GPIO_InitStruct);//初始化

  /*Configure GPIO pins : LD1_Pin LD4_Pin LD3_Pin LD2_Pin */
  //LED1:绿色,PB0
  //LED2:蓝色,PB7
  //LED3:红色,PB14
  //LED4:红色,PB2,  IHM07M1开发板中
  GPIO_InitStruct.Pin = LD1_Pin|LD4_Pin|LD3_Pin|LD2_Pin;//LED灯引脚
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;//推挽输出
  GPIO_InitStruct.Pull = GPIO_NOPULL;//无上拉和下拉
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;//低速模式
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);//初始化

  /*Configure GPIO pins : M1_PWM_EN_U_Pin M1_PWM_EN_V_Pin M1_PWM_EN_W_Pin */
  GPIO_InitStruct.Pin = M1_PWM_EN_U_Pin|M1_PWM_EN_V_Pin|M1_PWM_EN_W_Pin;//U,V,W使能引脚
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;//推完输出
  GPIO_InitStruct.Pull = GPIO_PULLDOWN;//下拉
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;//高速模式
  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);//初始化

}

 其中用户按键的作用是:按下电机运行,在按一下电机停机,采用输入中断方式采样信号。

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册