STM32 HAL库系列教程① 实现GPIO简单的反转

HAL GPIO IO Toggle

这是一个实现简单IO级反转的教程,下面是STM32CUBEMX的配置过程

这是创建过程

首先:选择Pin并选择debug模式

在这里插入图片描述

第二:选择RCC和晶体谐振器

在这里插入图片描述

第三:设置GPIO属性

在这里插入图片描述

第四:时钟选择HSE

在这里插入图片描述

第五:设置项目名称、位置和IDE

在这里插入图片描述

第六:生成外设初始化(.c或.h)并生成代码

在这里插入图片描述

最后:生成工程后在main函数while(1)下添加如下代码即可实现简单的IO反转

		/* 你应该把你的代码写在在BEGIN与END之间 */
		HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);		//toggle the pin
		HAL_Delay(500);
		
		/* 或者你可以这样写,把下面的代码反注释然后把上面的代码注释 */
//		HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
//		HAL_Delay(500);
//		HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
//		HAL_Delay(500);

注意:一定要在BEGIN和END之间写代码,否则重新生成工程代码会覆盖!!!
在这里插入图片描述

例程地址:之后会贴出

  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用STM32HAL库编写代码时,设置编码器的方向可以通过以下步骤完成: 1. 配置GPIO引脚:首先,需要将编码器的A相和B相信号引脚与STM32微控制器的GPIO引脚连接。使用HAL库提供的函数(如HAL_GPIO_Init)初始化这些GPIO引脚。 2. 配置编码器接口模式:接下来,通过调用HAL库提供的函数(如HAL_TIM_Encoder_Init)初始化编码器接口模式。这将配置定时器和GPIO引脚以捕获编码器的脉冲信号。 3. 配置编码器方向:通过调用HAL库提供的函数(如HAL_TIM_Encoder_Start)启动编码器接口,并设置捕获方向。要设置编码器的方向,请使用HAL库提供的函数(如HAL_TIM_Encoder_SetPolarity)设置定时器的输入极性。 例如,以下代码片段演示了如何使用STM32HAL库配置编码器的方向: ```c // 配置GPIO引脚 GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC_GPIOA_CLK_ENABLE(); // 使能GPIOA时钟 GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; // 编码器A相和B相引脚 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; // 输入模式 GPIO_InitStruct.Pull = GPIO_PULLUP; // 上拉模式 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); // 初始化GPIOA引脚 // 配置编码器接口模式 TIM_HandleTypeDef htim; __HAL_RCC_TIM2_CLK_ENABLE(); // 使能TIM2时钟 htim.Instance = TIM2; htim.Init.EncoderMode = TIM_ENCODERMODE_TI12; // 编码器接口模式 htim.Init.IC1Polarity = TIM_ICPOLARITY_RISING; // A相信号极性 htim.Init.IC2Polarity = TIM_ICPOLARITY_RISING; // B相信号极性 htim.Init.IC1Selection = TIM_ICSELECTION_DIRECTTI; // 直接输入模式 htim.Init.IC2Selection = TIM_ICSELECTION_DIRECTTI; // 直接输入模式 HAL_TIM_Encoder_Init(&htim); // 初始化编码器接口 // 配置编码器方向 HAL_TIM_Encoder_Start(&htim, TIM_CHANNEL_ALL); // 启动编码器接口 HAL_TIM_Encoder_SetPolarity(&htim, TIM_ENCODERPOLARITY_NONINVERTED); // 设置编码器方向为非反转 ``` 请根据您的硬件连接和需求进行适当的修改。此代码片段假定编码器的A相和B相信号连接到GPIOA的引脚0和1,使用TIM2作为编码器接口。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值