STM32CubeMX学习--(1)GPIO控制

微笑、不失礼 提交于 2020-01-22 07:44:41

工程配置

基础配置

  • 芯片选型 :STM32F429VGT6
  • 晶振:16M
  • 选择时钟源:System Core -> RCC -> High Speed Clock -> Crystal/Ceramic Resonator。
    采用外部16M晶振提供时钟信号。
  • 选择调试接口:System Core -> SYS -> Debug -> Serial Wire。
    采用2线SWD接口调试。
  • 配置时钟树:
    - Input:16,选择HSE
    - M:8
    - N:168
    - P:2
    - AHB:/1
    - HCLK:168
    - APB1:/4
    - APB2:/2
    - PCLK1:x2
    - PCLK2:x2
  • 配置工程位置,选择开发工具MDK,设置堆栈:0x2000 0x4000。
    到此,基础配置完成,点击GENERATE CODE即可生成代码工程文件。

GPIO功能设置

  • 选择IO设置为输出输入模式,并编写IO名称。
    PB0 设置为输出模式,名称LED_STP。
    PB12 设置为输入模式,名称为IN1。
  • 配置GPIO属性。
    System Core ->GPIO中对对应IO进行配置上拉,速度等相关参数。配置完成后即可生成代码。
  • 添加用户程序
    CUBE生成的代码中已经对相关外设进行了初始化,但是并没有使用逻辑程序,需要用户自行添加对应的程序。需要注意的是,添加用户程序时需要在BEGAIN到END之间添加,否则下次配置CUBE是,程序会被覆盖掉。
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
	  HAL_GPIO_TogglePin(LED_STP_GPIO_Port,LED_STP_Pin);
	  HAL_GPIO_TogglePin(LED_SYS_GPIO_Port,LED_CAN1_Pin);
	  HAL_GPIO_TogglePin(LED_SYS_GPIO_Port,LED_CAN2_Pin);
	  HAL_GPIO_TogglePin(LED_SYS_GPIO_Port,LED_SYS_Pin);
	  __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,duty);
	  __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_2,duty);
	  input=HAL_GPIO_ReadPin(IN1_GPIO_Port,IN1_Pin);
	  input |= (HAL_GPIO_ReadPin(IN2_GPIO_Port,IN2_Pin)<<1);
	  HAL_Delay(500);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!