草庐IT

HAL_GPIO_WritePin

全部标签

STM32 HAL库常用GPIO函数以及外部中断配置与响应流程

Hello,大家好,这是我第一篇博客,写的不好请大家包涵指教,话不多说直接看内容:HAL库常用GPIO函数:voidHAL_GPIO_Init(GPIO_TypeDef *GPIOx,GPIO_InitTypeDef*GPIO_Init)这个函数主要用来初始化我们需要用到的引脚,设置其工作频率、工作模式、上下拉等参数。如果使用CubeMX配置工程,所有参数在Cube中调配,函数自动在工程中生成。voidHAL_GPIO_DeInit(GPIO_TypeDef *GPIOx,uint32_tGPIO_Pin)HAL_GPIO_Init能够实现对GPIO的初始化,那么HAL_GPIO_DeInit

HT32F52352单片机,双串口,PWM的4路输出,GPIO输入(红外模块)(可以当合泰杯比赛的程序模板,非常好用),printf使用自定义串口输出

先放出双串口的代码,很多时候我们要利用一个串口仿造写出另一个串口的时候,时而失败。我通过改了几次HT32的代码之后发现主要问题出现在宏定义这边。usart.c文件#include"usart.h"#include"ht32f5xxxx_gpio.h"/**************************实现函数********************************************函数说明:配置usart串口*******************************************************************************/voidUS

STM32-UART-DMA HAL库缓冲收发

文章目录1、说明1.1、注意事项:1.2、接收部分1.3、发送部分2、代码2.1、初始化2.2、缓冲接收2.3、缓冲发送2.4、格式化打印1、说明1.1、注意事项:HAL库的DMA底层基本都会默认开启中断使能,如果在STM32CubeMx禁用了中断相关的功能,程序可能会进入空中断回调出不来。切记使用STM32-HAL库的DMA发送时需要开启USART中断和DMA中断。在一般时间要求不是很高很高的场合,使用HAL库自带的函数就可以,并不会很频繁的触发中断占用资源。1.2、接收部分接收DMA初始化成循环传输模式。开启对应DMA通道中断和串口全局中断之前担心开启串口中断会在接收数据时连续触发中断、导

STM32在CubeMX使用HAL库实现按键控制流水灯亮灭

目录一、在CubeMX创建项目二、代码编写实现流水灯1.编写代码并实现2.观察GPIO端口的输出波形三、代码编写实现按键控制流水灯亮灭1.新建工程(1)配置中断函数2.进入NVIC界面设置中断优先级3.配置时钟4.生成工程文件2.编写代码并实现一、在CubeMX创建项目已配置好java环境和CubeMX。CubeMX官网下载传送门:CubeMX-工具与软件1.第一步2.第二步3.第三步将CubeMX中的"DEBUG"栏目设置为"SerialWire"意味着你选择了SerialWireDebug(SWD)接口作为调试接口。SWD是一种调试接口协议,通常用于与ARMCortex-M微控制器进行调试

STM32Cubemx:基于HAL库实现MPU6050 DMA获取姿态信息

不同于移植官方DMP库,在别人标准库基础上移植会更加简单,只要按我的步骤一步一步来,基本不会错,本移植过程适用于F1和F4系列。MPU6050在电赛和制作平衡小车中很常用,所以我记录下来,方便后来者使用,移植过程有什么问题欢迎在评论区留言,我会看的。文章目录一、资料准备二、STM32Cube配置2.1基础配置2.2IIC配置2.3HAL库IIC初始化BUG修改(重点,不修改初始化不了)三、代码移植3.1添加文件到工程中并添加头文件路径3.2开始调教代码四、演示一、资料准备本次实验代码基于Github上一个项目进行,该项目是基于标准库移植的MPU6050代码,所以我们的任务就是将标准库换到HAL

STM32CubeMX教程3 GPIO输入 - 按键响应

1、准备材料开发板(STM32F407G-DISC1)ST-LINK/V2驱动STM32CubeMX软件(Version6.10.0)keilµVision5IDE(MDK-Arm)2、实验目标使用STM32CubeMX软件配置STM32F407开发板的按键作为输入,利用按键输入使LED灯产生响应3、实验流程3.0、前提知识对于所有的GPIO来说都是既可以作为输出引脚也可以作为输入引脚使用,本开发板上有一个用户按键,可以作为本次实验的输入,如下图所示为用户按键的电路原理图,当松开按键时,PA0为低电平;当按下按键时,PA0为高电平(注释1);3.1、CubeMX相关配置在Pinout&Conf

STM32CubeMX教程3 GPIO输入 - 按键响应

1、准备材料开发板(STM32F407G-DISC1)ST-LINK/V2驱动STM32CubeMX软件(Version6.10.0)keilµVision5IDE(MDK-Arm)2、实验目标使用STM32CubeMX软件配置STM32F407开发板的按键作为输入,利用按键输入使LED灯产生响应3、实验流程3.0、前提知识对于所有的GPIO来说都是既可以作为输出引脚也可以作为输入引脚使用,本开发板上有一个用户按键,可以作为本次实验的输入,如下图所示为用户按键的电路原理图,当松开按键时,PA0为低电平;当按下按键时,PA0为高电平(注释1);3.1、CubeMX相关配置在Pinout&Conf

【STM32F429】HAL库的PWM中断,精确控制脉冲数,控制步进电机

这两天在调步进电机,希望是使得步进电机每次都达到期望的高度。在查了一天的资料,发现大部分上传的资料都是使用CubeMX生成的,可复制性很高,但未免有失可读性,故上传我的心得经验。本来原子哥的例程里有整合度很高的,已经封装好的精确控制步进电机前进距离的函数。无奈例程使用了高级定时器TIM8,TIM8需要复用的引脚会影响到CAN的通讯,无奈自行研究,最终决定通过PWM中断,计数脉冲数,以此实现精确控制步进电机的步距角。话不多说,先谈谈我遇到的坑吧,我个人算是新手,所以在一开始调步进电机时,连初始化和基本步骤都不是很明白,所以下文会从最基础的地方开始。第一次我选择了定时器4的通道2作为PWM的输出口

STM32CubeMX教程2 GPIO输出 - 点亮LED灯

1、准备材料开发板(STM32F407G-DISC1)ST-LINK/V2驱动STM32CubeMX软件(Version6.10.0)keilµVision5IDE(MDK-Arm)2、实验目标使用STM32CubeMX软件配置STM32F407开发板点亮LED灯3、实验流程3.0、前提知识笔者使用的STM32F407G-DISC1开发板主控制器为STM32F407VGT6,该MCU封装为LQFP100,一共100个引脚,除去16个POWER引脚、1个NRST引脚和一个BOOT0引脚外,还剩余82个引脚,剩下的这些引脚均可以作为GPIO输入输出引脚使用,这些引脚分为6组,分别为GPIOA、GP

STM32CubeMX教程2 GPIO输出 - 点亮LED灯

1、准备材料开发板(STM32F407G-DISC1)ST-LINK/V2驱动STM32CubeMX软件(Version6.10.0)keilµVision5IDE(MDK-Arm)2、实验目标使用STM32CubeMX软件配置STM32F407开发板点亮LED灯3、实验流程3.0、前提知识笔者使用的STM32F407G-DISC1开发板主控制器为STM32F407VGT6,该MCU封装为LQFP100,一共100个引脚,除去16个POWER引脚、1个NRST引脚和一个BOOT0引脚外,还剩余82个引脚,剩下的这些引脚均可以作为GPIO输入输出引脚使用,这些引脚分为6组,分别为GPIOA、GP