关于STM32cubeMX中各种引脚外设的配置

在使用STM32CubeMX时,有时会忘记一些外设的配置过程,故记录此文档,当忘记时方便自己查看。

STM32使用STlink下载时:

STM32中关于使用LED灯时,引脚的配置:

我们在使用led灯时,需要将 led灯所连接的引脚设置为推挽输出模式,如下图所示:

我们可以看到该图片上有五列选项:

        第一项设置GPIO output level为High,即设置LED初始化电平为高电平,则上电时LED灯不点亮。此处选择高低电平的依据主要是根据外电路以及自己的需求)

        第二项GPIO mode,该模式下共有两个选项 :推挽输出(Output Push Pull)/开漏输出(Output Open Drain).此处选择推挽输出模式,因为推挽输出模式可以输出高低电平,而开漏输出只能输出低电平,如果想要输出高电平还需要在电路中加入上拉电阻来拉高输出电平。

        第三项GPIO Pull-up/Pull-doen,该模式有三种选项,既不上拉也不下拉(No pull-up and no pull-down),上拉(Pull-up),下拉(Pull-down),此处选择既不上拉也不下拉。

        第四项Maximum output speed,该模式有三种选项,低速(Low),中速(Medium),高速(High)。此处选择高速或低速。

        第五项User Label,设置用户标签,用户可以自定义标签。

参考以下电路:LED正极接到3V,负极接单片机GPIO口,若GPIO_TEST输出高电平,则LED无法被点亮,当GPIO_TEST输出低电平,此时LED两侧具有电压差,故LED导通点亮。

STM32中关于使用软件IIC时,引脚的配置:

将对应的引脚设置为开漏输出模式,选择上拉模式,因为IIC需要接上拉电阻。

STM32中关于使用软件IIC时,引脚的配置:

直接打开cubeMX,按图示选项:

STM32中关于使用usart时,引脚的配置:

模式选择异步通信(Asynchronous)。

并且使能全局中断NVIC_Setting。

STM32中关于使用PWM时,引脚的配置:

选择对应的定时器通道,如图,选择对应模式。

STM32中关于使用编码器时,引脚的配置:

当使用编码器时需要启用定时器的输入捕获功能,这里选用直接输入捕获

STM32中关于使用红外循迹模块时,引脚的配置:

使用红外循迹模块时将stm32中对应的引脚设置为输入模式,选择上拉输入,当循迹模块检测到黑线时,循迹模块的引脚会输出低电平,通过stm32检测引脚的高低电平来检检测模块是否检测到黑线,当引脚电平为高时,循迹模块未识别到黑线,当检测到引脚为低时,此时循迹模块识别到黑线。在程序中处理对应检测到黑线的逻辑。

STM32H743IIT6的输入捕获模式是定时器的一种重要功能,常用于测量脉冲宽度、信号频率等。 ### 输入捕获模式介绍 输入捕获模式可以捕获外部信号的电平变化,当检测到指定的边沿(上升沿、下降沿或双边沿)时,将定时器的当前计数值保存到捕获寄存器中。通过对捕获寄存器中的值进行处理,可以得到信号的时间信息。例如,测量一个脉冲的宽度,可在脉冲的上升沿触发一次捕获,记录计数值,在脉冲的下降沿再触发一次捕获,记录另一个计数值,两个计数值的差值就对应了脉冲的宽度。 ### 使用方法 以下是使用STM32H743IIT6输入捕获模式的一般步骤和示例代码(基于HAL库): #### 1. 初始化定时器和输入捕获通道 配置定时器的时钟源、预分频器、自动重装载值等参数,同时配置输入捕获通道的GPIO引脚和捕获极性(上升沿、下降沿等)。 ```c #include "stm32h7xx_hal.h" TIM_HandleTypeDef htim; TIM_IC_InitTypeDef sConfigIC; void TIM_InputCapture_Init(void) { // 使能定时器时钟 __HAL_RCC_TIMx_CLK_ENABLE(); // x为使用的定时器编号 // 配置定时器基本参数 htim.Instance = TIMx; // x为使用的定时器编号 htim.Init.Prescaler = 0; htim.Init.CounterMode = TIM_COUNTERMODE_UP; htim.Init.Period = 0xFFFF; htim.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; HAL_TIM_IC_Init(&htim); // 配置输入捕获通道 sConfigIC.ICPolarity = TIM_ICPOLARITY_RISING; // 上升沿捕获 sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI; sConfigIC.ICPrescaler = TIM_ICPSC_DIV1; sConfigIC.ICFilter = 0; HAL_TIM_IC_ConfigChannel(&htim, &sConfigIC, TIM_CHANNEL_x); // x为使用的通道编号 // 使能定时器 HAL_TIM_IC_Start_IT(&htim, TIM_CHANNEL_x); // x为使用的通道编号 } ``` #### 2. 编写输入捕获中断处理函数 当捕获事件发生时,会触发定时器的中断,在中断处理函数中读取捕获寄存器的值,并进行相应的处理。 ```c void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { if (htim->Instance == TIMx) // x为使用的定时器编号 { uint32_t capture_value = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_x); // x为使用的通道编号 // 处理捕获值,例如计算脉冲宽度等 } } ``` #### 3. 主函数调用初始化函数 ```c int main(void) { HAL_Init(); TIM_InputCapture_Init(); while (1) { // 主循环可以处理其他任务 } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值