GPIOpinInit.zip
大小:3.47KB
价格:38积分
下载量:0
评分:
5.0
上传者:weixin_51914644
更新日期:2025-09-22

STM32f103 GPIO应用代码

资源文件列表(大概)

文件名
大小
GPIOpinInit/
-
GPIOpinInit/GPIOpinInit.c
2.27KB
GPIOpinInit/GPIOpinInit.h
2.28KB
GPIOpinInit/ReadMe.txt
2.86KB

资源内容介绍

此代码为基于stm32f1固件库的对GPIO的配置、输入、输出的封装。可以用类似Arduino的函数形式完成对引脚的初始化和操作。同时也包含了寄存器快速操作的相关宏。
更新时间:2022.6.23https://blog.csdn.net/weixin_51914644/article/details/123433275版本:2.02.0版说明: 2.0版对1.0版仅仅作了头文件的内容扩充,未修改原有内容,故可直接替换1.0版,不会带来编译错误 也因此,对1.0版已有的内容不再重复说明,仅说明增加内容 增加的内容为寄存器位带操作,即已知GPIO的输入、输出寄存器(ODR、IDR)的地址,对其进行直接访问,将其值当作一个操作数 如对PB10操作,若为输出,则可以 输出低电平:PBout(10)=0;输出高电平:PBout(10)=1; 若为输入,则可以a=PBin(10);1.0版说明:时间:2021.1.26版本:1.0说明: 此封装为基于stm32f1固件库的对GPIO的配置、输入、输出的封装 包含stm32f1固件库头文件"stm32f10x.h"和布尔型变量的头文件"stdbool.h" 此封装共有5个可供调用的函数和1个工具函数(被前几个函数调用)关于5个函数:一、引脚配置void GPIOpinInit(char* PinName,char speed,char mode);1、 PinName为引脚名,组成为大写字母和数字,如"A06"、"B1"、"C13" 注意:双引号不可省略 另外"B1"或"B01"的写法均合法且是等价的,但是在双引号内加入空格不合法,以下均同2、 speed为速度,单位为MHz(无需输入),可取值为2、10、503、 mode为模式,取值与对应功能如下: 'A':模拟输入GPIO_Mode_AIN 'F':浮空输入GPIO_Mode_IN_FLOATING 'D':下拉输入GPIO_Mode_IPD 'U':上拉输入GPIO_Mode_IPU 'O':开漏输出GPIO_Mode_Out_OD 'P':推挽输出GPIO_Mode_Out_PP 'o':复用开漏输出GPIO_Mode_AF_OD 'p':复用推挽输出GPIO_Mode_AF_PP 注意:单引号不可省略用法示例:1、(直接写引脚名) GPIOpinInit("C13",50,'O'); GPIOpinInit("B1",2,'F');2、(用宏定义替换引脚名) #define led0 "C13" #define key "B1" GPIOpinInit(led0,50,'O'); GPIOpinInit(key,2,'F');二、输出void Output(char* PinName,bool state);1、 PinName为引脚名,说明同上2、 state为输出电平,置高可写1或high或HIGH,置低可写0或low或LOW 要注意是否选择了正确的模式用法示例:1、 Output("C13",0);2、 #define led0 "C13" Output(led0,LOW);三、置高void High(char* PinName); 输入PinName即可输出高电平,如High("B0"); 要注意是否选择了正确的模式四、置低void Low(char* PinName); 输入PinName即可输出低电平,如Low("B0"); 要注意是否选择了正确的模式五、读取bool Read(char* PinName); 输入PinName即可读取引脚电平,要注意是否选择了正确的模式 用法示例:bool message=Read("B1");

用户评论 (0)

发表评论

captcha