
STM32学习笔记三 8 M/ p# `# O8 V0 T( }! K& N, g4 V 任何一个单片机,最简单的外设莫过于IO口的高低电平控制了,本次学习就通过经典的点亮LED灯的程序,开启STM32的学习之旅。通过本次学习,你可以了解到STM32的IO口作为输入输出的使用方法,本次学习将通过代码控制 ALIENTEK 探索者STM32F4发板上的两个LED:DS0和DS1交替闪烁,实现类似跑马灯的效果。 ![]() 首先看一下这是我们前一节所需要配置好的一个模板工程,我先说明一下该工程的一个大致结构,根据图片上的标号来, 标号①表示该工程模板的一个系统库函数文件,该目录下的文件是确保你可以使用ST官方的库函数,一般建议保留,也可以只保留你所使用到的模块。 2 [. Y6 C: x9 d标号②存放的是固件库必须的核心文件和启动文件。这里面的文件用户不需要修改。大家可以根据自己的芯片型号选择对应的启动文件。 " c0 Q- v0 S) c1 r9 W4 `) S6 E8 a标号③的话是系统的共用代码,可有可无,你如果要是用就需要添加,不使用就可以删除。 标号④这边是添加了一个硬件文件夹,该文件夹下面存放的是每个实验的外设驱动代码,他的实现是通过调用FWLib下面的固件库文件实现的。 标号⑤存放的主要是用户代码,但是 system_stm32f4xx.c 文件用户不需要修改,同时stm32f4xx_it.c里面存放的是中断服务函数,这两个文件的作用在后续讲解。 + j0 a, A+ ^% ?% x$ F* w然后,今天的实验就是在模板函数中添加我们自己想要进行的操作文件,主要本次只要添加led.c和led.h即点亮LED灯的文件到硬件文件夹下面,如图 ![]() 代码主要是对LED灯所连接对应引脚进行初始化,首先我们看一下硬件图。 ![]() 从硬件图可以看出LED灯连接的是PF9和PF10引脚,所以我们只需要对9和10引脚进行初始化。具体代码如图 # r _% e/ r" a' Q" P& J: w![]() 每组GPIO都有时钟,我们初始化的时候必须先将时钟使能。虽然 IO 操作步骤很简单,这里我们还是做个概括性 的总结,操作步骤为: 1) 使能 IO 口时钟。调用函数为 RCC_AHB1PeriphClockCmd ()。 2) 初始化 IO 参数。调用函数 GPIO_Init(); 3) 操作 IO。 然后我们再在main函数中调用初始化后,我们就可以对相应的IO进行操作了。 1 Y0 a! @2 T& ]: ^![]() 最后我们将代码编译下载到开发板中就可以看到LED灯开始交替亮起来了,我这边的笔记的话主要是记录一些基本流程和操作。具体的细节大家可以参照开发板的开发手册来看,里面都有很详细的讲解,还有代码大家一定要自己敲,不要去复制,哪怕是照着敲也行一定要自己敲一边这样映像才会深刻,才会更容易理解。如果还有不清楚的地方大家也可以一起讨论。 8 c9 r- M+ _) P' k# c文章出处: STM32开发学习 2 F1 K" ~8 I" P. a 3 J. M/ B" V* {1 f) v$ C& g : E7 i. P. @$ n0 U |
Keil下的STM32N6之RAM运行工程配置说明
STM32硬件结构学习
STM32电路知识学习
STM32F429IGT6核心板原理图
【STM32MP257-DK】01开发板开箱、ST MPU 生态资源使用、环境搭建以及镜像更新
兔哥的初代M33【002】-H503Nucleo 内部flash操作
Nucleo-F429ZI开发板体验LWIP功能
TouchGFX应用移植自定义屏幕
STM32固件库分享,超全系列整理
【经验分享】新建基于STM32F40x 固件库的MDK5 工程