GPIO
来源:互联网 发布:win7电脑桌面美化软件 编辑:程序博客网 时间:2024/06/06 09:55
STM32F4通用I/O使用
一、使用I/O口的一般步骤
1、配置I/O管脚功能:输出/输入/其它
2、设置/读取管脚
二、STM32的I/O端口特性
STM32的管脚可以分别配置为多种模式:
1、上拉输入:上拉输入就是将管脚电位拉高,上拉输入能将不确定的信号通过一个电阻嵌位在高电平。电阻同时起限流作用,弱强只是上拉电阻的阻值不同,没有什么严格区分。
2、下拉输入:把电压拉低,拉到GND,与上拉原理相似。
3、浮空输入:浮空(floating)就是逻辑器件的输入引脚即不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。一般实际运用时,引脚不建议悬空,易受干扰。 通俗讲就是让管脚什么都不接,浮空着。
4、模拟输入:模拟输入是指传统方式的输入。如果要使用ADC等功能则要配置为模拟输入。
5、推完输出:可以输出高低电平,能够提高较大的输出电流,即带负载能力强,推挽结构一般是由两个三极管提供。
6、开漏输出:输出端相当于三极管的集电极,只能输出低电平,要想的到高电平状态,必须外加上拉电阻。
7、复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)
三、代码解析
1、配置PC0推挽输出
/* 库版本: V1.8.0 */
static void GPIOUsePC0(void)
{
/* 0. 使能GPIO时钟 */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
/* 1. 配置GPIO */GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; /* 推挽输出 */GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure);
}
2、使用PC0
/* 库版本: V1.8.0 */
int main(void)
{
unsigned int i;
/* 配置时钟 */
Stm32f4xxClockInit();
/* 配置PC0为推挽输出 */
GPIOUsePC0();
for(;;)
{
/* 2、设置输出低电平 */
GPIO_ResetBits(GPIOC, GPIO_Pin_0);
for(i = 0; i < 0xffffff; i++);
/* 2、设置输出高电平 */
GPIO_SetBits(GPIOC, GPIO_Pin_0);
for(i = 0; i < 0xffffff; i++);
}
}
- gpio
- gpio
- GPIO
- GPIO
- GPIO
- GPIO
- GPIO
- GPIO
- GPIO
- GPIO
- GPIO
- gpio
- GPIO
- gpio
- GPIO
- gpio
- GPIO
- gpio
- 练习14
- centos6安装Apache服务器
- Hihocoder 1430 Problem I. A Boring Problem (二项式定理
- (codevs 3044 矩形面积求并)<可以不用线段树>
- 利用KNN算法实现手写体数字的识别
- GPIO
- Spark基础-Scala条件判断和循环
- 简易的多组数据题模板
- codeforces #428 Div.2 B. Game of the Rows 贪心、思维
- Codeforces 839D Winter is here
- composer简介
- JAVA之面向对象
- Hibernate一级缓存
- Spring_HelloWorld