小辣鸡【野火stm32自学笔记】构建库函数雏形

寄存器结构体定义

寄存器地址之间相距4个字节

以GPIOB为例

可以找出GPIOB_BASE的地址为基地址开始定义

Ps:typedef unsigned int 定义一个整形类型

编写端口置位复位函数

以设置ODR寄存器的置位复位为例

创建文件

头文件防止重复调用

在main.c中调用以下头文件

在stm32f10x_gpio.h中也调用了一次stm32f10x.h

故在stm32f10x.h中也要设置防止重复调用代码

Ps:养成习惯在头文件中写防止重复调用代码,以下代码成对出现

例如

#ifndef _STM32F10X_H

#define _STM32F10X_H

……

#endif /* _STM32F10X_H */

GPIO口置位

Step1 在stm32f10x_gpio.c中创建一个函数

函数第一个参数,指定哪一个端口

函数第二个参数,每个端口有16个IO口

置位操作BSRR寄存器的低16位

(BSRR为高电平有效)

Step2 在stm32f10x_gpio.h中定义宏(GPIO引脚号定义)

Step3 在main.c主函数中调用函数

GPIO口复位

同理:

Step1

使用BRR端口清除寄存器(高电平有效,将对应的位清除为0)

Step2 同BSRR高电平有效,故使用同样的引脚定义

Step3

逻辑现象为先不亮后亮

编写GPIO初始化结构体和初始化函数

在stm32f10x_gpio.h中创建GPIO初始化结构体

GPIO初始化结构体包含了引脚号、工作模式、输出速率

GPIO枚举类型定义

工作模式枚举定义中对应的值如下所示

创建GPIO初始化函数

……(略)

在stm32f10x_gpio.h中调用以上函数GPIO_Init

在main.c中

提高程序的可移植性

Finish~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值