STM32F407 学习 (0) 各种外设功能()

本文对正点原子STM32F4探索者的基本功能及外设作最基本的介绍,随笔者本人的学习进程(基本按照正点原子)而不定时更新,起到总结的作用。

一、HAL库编写程序的运行逻辑
HAL库函数(如stm32f4xx_hal_dma.c/.h):提供最基本的初始化函数和一些基本寄存器操作。
库函数(如led.c.h、dma.c.h):在HAL库之上,需要由用户编写的库函数进行时钟使能和端口配置。大部分情况下,中断函数也要写到用户的库函数里。
在main.c函数里:while(1)之外主要写一些Init()函数(如HAL_Init、LED_Init等)启用一些外设的功能,while(1)之内主要实现对外部相应的及时控制(如串口输入了一个字符串、外部有按键输入、触摸屏输入等)

二、LED灯
位于PF9PF10两个端口。
1.led_init();
使能
2.void HAL_GPIO_WritePin
(GPIO_TypeDef *GPIOx,uint16_t GPIO_Pin,GPIO_PinState PinState);
用于设置引脚输出高电平或者低电平
3.void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
用于设置引脚的电平翻转

如何使用:把led.c放入路径中,在main函数前声明led_init()。
用途:可以来判断系统是否正常运行。

三、蜂鸣器
位于PF8
1.beep_init();
使能:BEEP(0)停止蜂鸣/BEEP(1)开始蜂鸣
2.BEEP_TOGGLE();状态反转

如何使用:把beep.c放入路径中,在main函数前声明beep_init()。
用途:没啥用。

四、按键输入
KEY0:PE4
KEY1:PE3
KEY2:PE2
KEY_UP:PA0
1.key_init();
按键初始化
2.key_scan();
按键扫描函数
如何使用:把key.c放入路径中,在main函数前声明key_init()。在while(1)中使用
key=key_scan(0)
用途:可以当作四个外部信号输入。

五、外部中断

NVIC:NVIC的相关函数

————————

本文对正点原子STM32F4探索者的基本功能及外设作最基本的介绍,随笔者本人的学习进程(基本按照正点原子)而不定时更新,起到总结的作用。

一、HAL库编写程序的运行逻辑
HAL库函数(如stm32f4xx_hal_dma.c/.h):提供最基本的初始化函数和一些基本寄存器操作。
库函数(如led.c.h、dma.c.h):在HAL库之上,需要由用户编写的库函数进行时钟使能和端口配置。大部分情况下,中断函数也要写到用户的库函数里。
在main.c函数里:while(1)之外主要写一些Init()函数(如HAL_Init、LED_Init等)启用一些外设的功能,while(1)之内主要实现对外部相应的及时控制(如串口输入了一个字符串、外部有按键输入、触摸屏输入等)

二、LED灯
位于PF9PF10两个端口。
1.led_init();
使能
2.void HAL_GPIO_WritePin
(GPIO_TypeDef *GPIOx,uint16_t GPIO_Pin,GPIO_PinState PinState);
用于设置引脚输出高电平或者低电平
3.void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
用于设置引脚的电平翻转

如何使用:把led.c放入路径中,在main函数前声明led_init()。
用途:可以来判断系统是否正常运行。

三、蜂鸣器
位于PF8
1.beep_init();
使能:BEEP(0)停止蜂鸣/BEEP(1)开始蜂鸣
2.BEEP_TOGGLE();状态反转

如何使用:把beep.c放入路径中,在main函数前声明beep_init()。
用途:没啥用。

四、按键输入
KEY0:PE4
KEY1:PE3
KEY2:PE2
KEY_UP:PA0
1.key_init();
按键初始化
2.key_scan();
按键扫描函数
如何使用:把key.c放入路径中,在main函数前声明key_init()。在while(1)中使用
key=key_scan(0)
用途:可以当作四个外部信号输入。

五、外部中断

NVIC:NVIC的相关函数