编写GPIO配置函数:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; //实例化一个初始化结构体 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA , ENABLE); //使能对应的时钟树 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3; //选择PIN,一般可选0~15 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //选择IO口速度 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //选择IO口模式 GPIO_Init(GPIOA, &GPIO_InitStructure); //利用标准库函数初始化GPIO }
标准库有三种GPIO速度,分别是:
复制代码
1
2
3
4
5
6typedef enum { GPIO_Speed_10MHz = 1, GPIO_Speed_2MHz, GPIO_Speed_50MHz }GPIOSpeed_TypeDef;
标准库有八种GPIO模式,分别是:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18typedef enum { GPIO_Mode_AIN = 0x0, //模拟输入 GPIO_Mode_IN_FLOATING = 0x04, //浮空输入 GPIO_Mode_IPD = 0x28, //下拉输入 GPIO_Mode_IPU = 0x48, //上拉输入 GPIO_Mode_Out_OD = 0x14, //开漏输出 GPIO_Mode_Out_PP = 0x10, //推挽输出 GPIO_Mode_AF_OD = 0x1C, //开漏复用功能 GPIO_Mode_AF_PP = 0x18 //推挽复用功能 }GPIOMode_TypeDef;
标准库常用RCC时钟树设置函数:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14//AHB外设时钟命令 void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState) //APB2外设时钟命令 void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState) //APB1外设时钟命令 void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState) /* AHB (Advanced High-performance Bus)高级高性能总线 APB (Advanced Peripheral Bus)高级外设总线 */
标准库输出高低电平:
复制代码
1
2
3
4
5
6
7
8
9
10//输出高电平 void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) //输出低电平 void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) /* *@brief GPIO_SetBits(GPIOA , GPIO_Pin_0); * GPIO_ResetBits(GPIOA , GPIO_Pin_0); */
上述皆为简单的IO操作
若要深入研究,可以查看stm32f10x_gpio.c中的函数
对于各类协议初始化,GPIO担任着最重要的角色几乎所有于io有关的都需要定义它
最后
以上就是雪白盼望最近收集整理的关于STM32驱动GPIO基础(标准库)编写GPIO配置函数:的全部内容,更多相关STM32驱动GPIO基础(标准库)编写GPIO配置函数内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复