电机FOC控制(一)- STM32 CUBEMX配置RCC和GPIO

文章目录

  • 前言
  • 一、STM32 CUBEMX RCC配置方法。
  • 1、STM32 CubeMX 新建工程。
  • 2、选择外部时钟。
  • 二、GPIO配置
  • 1、配置GPIO基本参数。
  • 2、配置MCU运行频率。
  • 三、生成工程文件
  • 1、设定工程存放参数
  • 四、增加指示灯运行代码
  • 1、添加代码
  • 总结

  • 前言

    本文讲述如何对 STM32G431 MCU进行RCC、GPIO配置,并且在开发板上实现LED灯的闪烁功能。

    一、STM32 CUBEMX RCC配置方法。

    1、STM32 CubeMX 新建工程。

    Core选择Arm Cortex-M4 ,Series选择STM32G4,MCU选择STM32G431RBTx系列,如下图所示:

    2、选择外部时钟。

    由于本开发板有24MHz高速晶振和32.768KHZ低速晶振,故HSE和ISE均选择使用(晶振/陶瓷振荡器)。

    电路图如下所示:
    ​​​​
    STM32 CubeMX 设置如下所示:

    其他选项定义如下:

    选项 Master Clock Output 1 用来选择是否使能 MCO1 引脚时钟输出;
    选项 Master Clock Output 2 用来选择是否使能 MCO2 引脚时钟输出;
    选项 Audio Clock Input( I2S_CKIN)用来选择是否从 I2S_CKIN(PC9)输入 I2S时钟。
    均不进行勾选。

    二、GPIO配置

    目的:检验配置是否成功,程序是否运行

    1、配置GPIO基本参数。

    右击MCU图形里的PB13和PB14引脚,在弹出的配置表里选择GPIO_Output。
    STM32G431 PB13设置如下:

    STM32G431 PB14设置如下:


    GPIO基本配置说明:

    GPIO output level: GPIO 默认输出电平,Low:低电平;High:高电平。
    GPIO mode: 选择推挽输出。
    GPIO Pull-up/Pull down: 选择上拉输出。
    Maximum output speed: 选择运行速度中速。
    User Lable: 用户标签,也就是宏定义,此工程不添加。

    2、配置MCU运行频率。

    选择Clock Configuration ,根据原理图输入晶振频率,HSE:24MHz和LSE:32.768KHZ。

    三、生成工程文件

    1、设定工程存放参数

    选择Project Manager,在Project条目下输入工程名称和工程存放路径,在Code Generate选择工程开发软件和版本,完成后,点击GENERATE CODE按钮。

    四、增加指示灯运行代码

    1、添加代码

    在main.c文件里面添加以下代码:

    static void LED_RUN(void)
    {
    	
    	HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_13);
    	/* Insert delay 100 ms */
    	HAL_Delay(500);
    	   
    	HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_14);
    	/* Insert delay 100 ms */
    	HAL_Delay(500);
    	
    }
    

    并且在main函数while里面增加LED_RUN。

    int main(void)
    {
      /* USER CODE BEGIN 1 */
    
      /* 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();
      /* USER CODE BEGIN 2 */
    
      /* USER CODE END 2 */
    
      /* Infinite loop */
      /* USER CODE BEGIN WHILE */
      while (1)
      {
        /* USER CODE END WHILE */
    		LED_RUN();
        /* USER CODE BEGIN 3 */
      }
      /* USER CODE END 3 */
    }
    

    总结

    此工程程序成功运行,使LED灯进行闪烁。

    物联沃分享整理
    物联沃-IOTWORD物联网 » 电机FOC控制(一)- STM32 CUBEMX配置RCC和GPIO

    发表评论