【STM32CubeMx你不知道的那些事】第二章:GPIO的输入输出应用

好了,上一章我们主要讲解了一下STM32CubeMx如何创建工程。这一章我们主要是讲解使用该软件去配置初始化GPIO。

一、准备工作

1、使用我们第一章配置好工程文件。如图

2、准备你需要编程硬件对应的原理图或者PCB,将你需要点亮的灯对应到IO口上去。如图

可知我们需要点亮GPIO PB8对应的LED。

3、准备好硬件。

二、具体操作

1、打开STM32CubeMx工程软件配置所需要的GPIO。在Pinout栏目下如图所示

将PB8配置为Gpio_Ouput模式,意味着PB8这个引脚是作为输出使用。如果设置成Gpio_Input则为输入模式。

2、在Configuration栏目下配置该IO口的功能。

点击Systems下的GPIO进入配置界面。如图所示

①点击我们配置PB8口,下面弹出来五个栏目。

②设置GPIO优先级。

③设置GPIO输出模式(开漏/推挽)。

④设置GPIO上下拉模式(这里默认是下拉模式)。

⑤设置GPIO速度。

⑥设置当前PB8 GPIO的宏定义。

⑦点击OK设置完成。

3、生成工程

点击Project菜单栏选择Generate code,工程生成完毕。

4、验证工程

打开编译工程,在while(1)里面添加LED闪烁程序。代码如下

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 */

  /* USER CODE BEGIN 3 */
	HAL_Delay(1000);
	HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);
  }
  /* USER CODE END 3 */

}

这样可以实现一个简单的GPIO输出控制。

如果之前设置的为输入模式这里面代码和输出就有区别

输入模式我们需要读取GPIO状态,使用的HAL库函数为HAL_GPIO_ReadPin(LED1_GPIO_Port, LED1_Pin);

如有什么不懂联系加QQ群:1063618791欢迎大家学习交流!

发布了5 篇原创文章 · 获赞 2 · 访问量 442

猜你喜欢

转载自blog.csdn.net/qq_15117167/article/details/104497453