STM32学习笔记(4)-点亮LED(标准库函数介绍)

仅供个人学习,记录学习STM32中的要点,加深对知识的巩固

前言

上一节我们通过指针访问结构体来达到寄存器控制LED灯。这节就使用库函数来完成对LED灯的控制。仍在上一节代码基础之上进行编写。

库函数介绍

在main.c文件中加入头文件

#inlcude <stm32f10x.h>

解释:这行代码包含了一个名为 stm32f10x.h 的头文件,该头文件包含了 STM32F10x 系列微控制器的基本配置和外设库函数的声明。

具体来说,stm32f10x.h 头文件包含了 STM32F10x 系列微控制器的内部寄存器定义、外设寄存器地址映射、中断向量表、外设库函数的声明等一系列内容,方便进行 STM32F10x 微控制器的编程和开发。

接下来,我们通过选择RCC,点击右键,选择“Go To Definition Of 'RCC'”。可以找到它的定义。

alt

alt

同样的,我们可以找到GPIOA的写法。

alt

从上面两张图中可以看出,和之前的第三节我们用寄存器写的代码很相似。

笔者这里将他们放在一起对比如下图。

alt

所以为了一探究竟,我们进行如下操作:

alt

这里我们可以选择RCC_Typedef,点击右键,选择“Go To Definition Of 'RCC_Typedef'”。可以找到它的定义。

alt

将他们和上一节内容放在一起对比 alt

可以看到,除开一些宏定义的分支,红色大框所包含的内容也和上一节结构体的内容相似。

这就说明,在<stm32f10x.h>的头文件中,已经包含了对RCC和GPIO的封装。

再次回到RCC_Typedef,我们去找RCC_BASE的定义 alt

我们看到它的地址位组成。

alt

这里再次记录一下:

alt

我们在去寻找AHBPERRIPH_BASE的定义。

alt

再次记录: alt

我们找到PERIPH_BASE的地址:

alt

记录: alt

可以看到,我们的RCC_BASE等与0x40021000。也就是说,官方提供了封装好了的结构体供我们使用。虽然和上一节代码没有本质变化,但是我们已经开始接触了官方所提供的库函数,并且知道该怎么使用他们了。下一节将介绍如何使用官方的库函数来进一步改写我们的代码。

本小节暂时记录到此。

全部评论
大佬,终于理解了
点赞 回复 分享
发布于 2023-11-06 16:04 云南
谢谢大佬分享,马克了
点赞 回复 分享
发布于 2023-03-05 10:57 甘肃
请问上一节的内容在哪里看?
点赞 回复 分享
发布于 2023-03-05 10:36 辽宁

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务