STM32CubeMX系列教程1:GPIO输入与输出

摘要

  本章讲解STM32 GPIO的输入与输出,以使用一个按键控制一个LED灯的亮与灭。

创建工程

   打开STM32CubeMX,新建工程,选择单片机型号,这里以STM32F411CEU6为例。

新建工程可参考 STM32CubeMX系列教程0:创建工程
如果需要安装环境,可参考《STM32开发环境安装》

配置外设与IO

配置RCC与Debug

  进入System Core-SYS设置,选择Debug为Serial wire。其他参数默认
在这里插入图片描述

  进入System Core-RCC设置,分别配置HSE为Crystal/Ceramic Resonator(晶体/陶瓷谐振器)。其他参数默认
在这里插入图片描述

选择GPIO引脚与功能

  在右侧的单片机上选择连接有LED灯和按键的IO引脚,比如我的单片机系统的PA0连接了LED灯,PC13连接了一个按键。
配置输出引脚。
  在连接了LED灯的引脚上单击左键,选择Output功能。
在这里插入图片描述

  在PA0上右键,选择Enter User Label,键入别名,输入LED。
在这里插入图片描述
在这里插入图片描述

  配置输入引脚,在连接了按键的引脚上单击左键,选择Input功能。然后同样在PC13上右键,键入别名KEY。
在这里插入图片描述

配置GPIO

  进入System Core-GPIO设置,上方选择GPIO引脚设置。
  配置输出引脚PA0.。选中上方的PA0。
在这里插入图片描述

1. 引脚上电时的默认状态。(高电平/低电平)  			因我的LED灯的阴极连接的单片机引脚,所以选择高电平,表示默认熄灭。
2. 引脚模式。(推挽输出/开漏输出)    					这里选择推挽输出。
3. 开启引脚外部上拉或下拉。(浮空/上拉/下拉) 			这里选择上拉。
4. 引脚输出速度。(低/中/高/很高)    					默认即可。
5. 引脚别名。										这里之前选择GPIO时已经配置过就不用在配置。

配置输入引脚PC13。.选中PC13.。
在这里插入图片描述

1. 引脚模式。								这里默认为输入模式,不可更改。  
2. 开启引脚外部上拉或下拉。(浮空/上拉/下拉)  	根据电路设计选择,一般使用上拉。  
3. 用户别名设置。

时钟配置

  进入时钟配置界面。根据单片机系统中采用的晶振频率设置HSE,我的单片机系统采用的8M晶振。这里必须使能System Core-RCC中的HSE才可以设置。刚才我们已经配置过了。
在这里插入图片描述

  配置系统主频,时钟源选择HSE,系统主频选择PLLCLK,再在HCLK框中输入系统推荐的主频,点击回车,软件即可自动配置各个分频器的值。
在这里插入图片描述

工程输出设置

  点击上方的 Project Manager进入配置界面。在project设置中,分别设置好工程名称,工程路径,与开发环境,比如,如果使用的是keil环境,则选择MDK_ARM。
在这里插入图片描述
  左侧选择Code Generator设置,选择仅复制需要的库文件,勾选外设初始化生成独立的.c/.h文件。这样生成的工程文件比较小并且后期容易修改。
在这里插入图片描述

点击右上角的GENERATE CODE生成工程。
在这里插入图片描述

编写用户代码

插入用户代码

  打开生成的工程,打开main.c文件,找到main(void)入口函数,找到while语句,加入判断按键按下,改变led灯的状态的语句。
  用户代码要加在USER CODE BEGIN N和USER CODE END N之间,否则下次重新生成代码后,会被删除

/* USER CODE BEGIN WHILE */
  while (1)
  {		
  		if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin) == 0) //判断按键KEY是否被按下
		{
			HAL_Delay(10);												//延时10ms消除按键抖动if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin) == 0)  //再次判断按键KEY是否依然被按下
			{
				HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin); 				//对LED引脚进行取反操作while(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin) == 0);  //等待按键抬起
			}
		}/* USER CODE END WHILE */

编译

  点击左上角的编译图标,稍等一会儿,可以看到,下方的Build Output窗口提示编译完成,输出程序占用的空间,没有警告与错误。
在这里插入图片描述

下载代码进入单片机

STM32单片机程序下载方法有多种,有需要请跳转

STM32程序下载0:STM32CubeProgrammer安装
STM32程序下载1:通过keil-ST-Link方式下载
STM32程序下载2:通过STM32CubePro-ST-Link下载
STM32程序下载3:通过STM32CubePro-UART下载
STM32程序下载4:通过STM32CubePro-USB下载

选择你所需要的下载方法。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
关于STM32CubeMX系列学习教程,有很多资源可供参考。在这些教程中,你可以学习到如何使用STM32CubeMX工具来进行STM32芯片的图形化配置。这个工具可以帮助你快速建立和初始化工程,并生成C语言的初始化代码,从而减轻开发工作的负担,提高开发效率。同时,STM32CubeMX工具还提供了可视化的引脚、外设和时钟配置功能,使得开发者可以更方便地进行硬件配置。这些教程涵盖了多个方面的内容,包括GPIO输入输出、外部中断、定时器中断、PWM实现呼吸灯效果、串口通信、ADC读取电压等等。你可以根据自己的需求选择相应的教程进行学习。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [STM32CubeMX学习系列教程目录](https://blog.csdn.net/toopoo/article/details/88234293)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [用stm32cubemx点亮一个流水灯](https://blog.csdn.net/algorithm_lixuan/article/details/76640298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [STM32 CubeMx教程 -- 基础知识及配置使用教程](https://blog.csdn.net/Dir_x/article/details/128846252)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌新程序猿~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值