【STM32CubeMx你不知道的那些事】第二章:STM32CubeMxGPIO的输入输出应用

发布于:2021-10-18 23:52:34

好了,上一章我们主要讲解了一下STM32CubeMx如何创建工程。这一章我们主要是讲解使用该软件去配置初始化GPIO。


一、准备工作

1、使用我们第一章配置好工程文件。如图



2、准备你需要编程硬件对应的原理图或者PCB,将你需要点亮的灯对应到IO口上去。如图



可知我们需要点亮GPIO PB8对应的LED。


3、准备好硬件。


二、具体操作

1、打开STM32CubeMx工程软件配置所需要的GPIO。在Pinout栏目下如图所示



将PB8配置为Gpio_Ouput模式,意味着PB8这个引脚是作为输出使用。如果设置成Gpio_Input则为输入模式。


2、在Configuration栏目下配置该IO口的功能。


点击Systems下的GPIO进入配置界面。如图所示



①点击我们配置PB8口,下面弹出来五个栏目。


②设置GPIO优先级。


③设置GPIO输出模式(开漏/推挽)。


④设置GPIO上下拉模式(这里默认是下拉模式)。


⑤设置GPIO速度。


⑥设置当前PB8 GPIO的宏定义。


⑦点击OK设置完成。


3、生成工程


点击Project菜单栏选择Generate code,工程生成完毕。


4、验证工程


打开编译工程,在while(1)里面添加LED闪烁程序。代码如下


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)
{

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */
HAL_Delay(1000);
HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);
}
/* USER CODE END 3 */

}

这样可以实现一个简单的GPIO输出控制。


如果之前设置的为输入模式这里面代码和输出就有区别


输入模式我们需要读取GPIO状态,使用的HAL库函数为HAL_GPIO_ReadPin(LED1_GPIO_Port, LED1_Pin);


如有什么不懂联系加QQ群:1063618791欢迎大家学*交流!

相关推荐

最新更新

猜你喜欢