首页 > 其他分享 >STM32F407 学习 (0) 各种外设功能

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

时间:2023-03-19 22:35:33浏览次数:35  
标签:HAL 函数 学习 init key GPIO STM32F407 外设 库函数

  本文对正点原子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的相关函数

标签:HAL,函数,学习,init,key,GPIO,STM32F407,外设,库函数
From: https://www.cnblogs.com/sathiala/p/17234116.html

相关文章

  • 3.19学习总结
    1.TextClock(文本时钟)TextClock是在Android4.2(API17)后推出的用来替代DigitalClock的一个控件!TextClock可以以字符串格式显示当前的日期和时间,因此推荐在Android4.2以后......
  • 【VTK学习笔记】VTK基本数据结构_3.2数据对象和数据集
    任务:把几何结构和拓扑结构加入到数据集中1.无拓扑结构1#include<vtkSmartPointer.h>2#include<vtkPoints.h>//几何结构3#include<vtkPolyData.h>//数据集......
  • 学习日记23.3.19
    今天在参考大佬前端代码时发现了一个小东西<htmllang="en">直接百度了一波:<htmllang="en">向搜索引擎表示该页面是html语言,并且语言为英文网站,其"lang"的意思就是“lan......
  • 常用Markdown语法学习
    Markdown语法学习标题语法一共有六级标题一级标题二级标题三级标题四级标题五级标题六级标题用"#"号代表标题等级,"#"号越多,标题等级越低注意!"#"号和标题文字......
  • 【THM】Intro to Defensive Security(防御性安全介绍)-学习
    本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/defensivesecurityhq本文相关内容:介绍防御性安全和相关主题,例如威胁情报、SOC、DFIR和SIEM。防御性安全......
  • 阅读-关于机器学习的领悟与反思
    【作者简介】张志华:北京大学数学学院教授,北京大数据研究院高级研究员。曾在浙江大学和上海交通大学计算机系任教。主要从事机器学习与应用统计等领域的教学与科研工作。......
  • Python 学习11 协程实现并发
    Python中的协程  协程(co-routine,又称微线程、纤程)是一种多方协同的工作方式。协程不是进程或线程,其执行过程类似于Python函数调用,Python的asyncio模块实现的异步IO......
  • Java NIO Socket学习
    前言这周学习尼恩编著的《Netty、Redis、ZooKeeper高并发实战》,这本书写的很不错,通过十几个例子带领大家去体会高并发如何实现,这周我看了最基础的JavaNOI部分,读书的时......
  • 树链剖分 学习笔记
    apple365:这个东西没有不可替代的作用重链剖分按照重儿子和轻儿子划分。第一遍dfs求出siz[],fa[],dep[],son[]。第二遍打dfn。每次走重儿子会走出一条重链。之后......
  • C语言学习第二天
    1、#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(){chararr1[]="abc";//"abc"--'a''b''c''\0',\0表示字符串的结束标志//数据在计算机上存储的时......