您的位置:首页 > 科技 > IT业 > STM32CubeMx学习笔记——GPIO使用

STM32CubeMx学习笔记——GPIO使用

2024/12/23 12:57:12 来源:https://blog.csdn.net/weixin_74209413/article/details/142068876  浏览:    关键词:STM32CubeMx学习笔记——GPIO使用

 一、新建工程

1、选择芯片型号

2、配置时钟RCC

选择 HSE(外部高速时钟) 为 Crystal/Ceramic Resonator(晶振/陶瓷谐振器)

3、时钟树配置

在clock Configuration中将HCLK配置为最高频率然后回车

4、选择调试模式

SYS 设置,选择 Debug 为 Serial Wire

Timebase Source时钟源可以选择SysTick

 二、GPIO输出

2.1参数配置

点击引脚选择GPIO_Output,再点击GPIO里的引脚,进行配置

2.2生成代码 

每个外设生成独立的 ’.c/.h’ 文件
不勾:所有初始化代码都生成在 main.c
勾选:初始化代码生成在对应的外设文件。 如 GPIO 初始化代码生成在 gpio.c 中。如下:

 

最后点击右上角的GENERATE CODE 。

点亮LED

/*** @brief  The application entry point.* @retval int*/
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){GPIO_SetBits(LED_GPIO_PORT, LED1_GPIO_PIN); // 输出高电平HAL_Delay(1000);							// 1秒GPIO_ResetBits(LED_GPIO_PORT, LED1_GPIO_PIN); // 输出低电平/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}

 三、GPIO输入

3.1 参数配置

在 System Core 中选择 GPIO 设置。

在右边图中找到按键对应引脚,选择 GPIO_Input

生成代码同上面的GPIO输出的操作一样。

示例:读取引脚电平

/*** @brief  The application entry point.* @retval int*/
int main(void)
{/* USER CODE BEGIN 1 */uint8_t status = 0;/* 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){// 可以加打印看'status'数值判断高低电平status = HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin); // 读取按键状态HAL_Delay(1000);							// 1秒/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}

四、注意事项 

 用户代码要加在 USER CODE BEGIN N 和 USER CODE END N 之间,否则下次使用 STM32CubeMX 重新生成代码后,会被删除。

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com