STM32库函数端口初始化说明

发布者:EnchantedMagic最新更新时间:2018-08-12 来源: eefocus关键字:STM32  库函数  端口初始化 手机看文章 扫描二维码
随时随地手机看文章

下面只针对这两种MCU库函数操作端口进行说明

一、端口功能说明
STM32F0系列
typedef struct
{
  uint32_t GPIO_Pin; //引脚配置
  
  GPIOMode_TypeDef  GPIO_Mode;      //端口模式
  GPIOSpeed_TypeDef GPIO_Speed;     //引脚速率
  GPIOOType_TypeDef GPIO_OType;     //输出设置
  GPIOPuPd_TypeDef  GPIO_PuPd;      //管脚设置
}GPIO_InitTypeDef;


typedef enum
{
  GPIO_Mode_IN   = 0x00, //输入
  GPIO_Mode_OUT  = 0x01,                  //输出
  GPIO_Mode_AF   = 0x02,        //浮空输入 
  GPIO_Mode_AN   = 0x03         //模拟输入

}GPIOMode_TypeDef;


typedef enum
{
  GPIO_OType_PP = 0x00, //推挽
  GPIO_OType_OD = 0x01 //开漏
}GPIOOType_TypeDef;


typedef enum
{
  GPIO_Speed_Level_1  = 0x01,   //中速
  GPIO_Speed_Level_2  = 0x02, //低速
  GPIO_Speed_Level_3  = 0x03   //高速
}GPIOSpeed_TypeDef;


typedef enum
{
  GPIO_PuPd_NOPULL = 0x00, //无上拉下拉
  GPIO_PuPd_UP     = 0x01,   //上拉
  GPIO_PuPd_DOWN   = 0x02 //下拉
}GPIOPuPd_TypeDef;
------------------------------------------------------------

STM32F1系列


typedef struct
{
  uint16_t GPIO_Pin; //引脚配置
  
  GPIOSpeed_TypeDef GPIO_Speed;   //引脚速率
  GPIOMode_TypeDef GPIO_Mode;     //端口模式
}GPIO_InitTypeDef;


typedef 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;


typedef enum

  GPIO_Speed_10MHz = 1, //10MHz
  GPIO_Speed_2MHz, //2MHz
  GPIO_Speed_50MHz //50MHz
}GPIOSpeed_TypeDef;


二、初始化函数体


STM32F0系列
void Myport_Init(void)
{
/*定义一个GPIO_InitTypeDef类型的结构体*/
GPIO_InitTypeDef GPIO_InitStruct; 
/*开启GPIOA的外设时钟*/
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
/*设置控制的GPIOA引脚*/
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
/*设置控制的GPIOA引脚的端口模式*/
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
/*设置控制的GPIOA引脚的管脚设置*/
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
/*设置引脚速率为高速 */
GPIO_InitStruct.GPIO_Speed =GPIO_Speed_Level_3;
/*调用库函数,初始化GPIOA*/
GPIO_Init(GPIOA, &GPIO_InitStruct);
}


STM32F1系列
void Myport_Init(void)
{
/*定义一个GPIO_InitTypeDef类型的结构体*/
GPIO_InitTypeDef GPIO_InitStructure;
/*开启GPIOC的外设时钟*/
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE); 
/*选择要控制的GPIOC引脚*/   
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; 
/*设置引脚模式为通用推挽输出*/
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
/*设置引脚速率为50MHz */   
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
/*调用库函数,初始化GPIOC*/
  GPIO_Init(GPIOC, &GPIO_InitStructure);  
}


关键字:STM32  库函数  端口初始化 引用地址:STM32库函数端口初始化说明

上一篇:STM32F051C8T6控制LED
下一篇:stm32 GPIO简单介绍及初始化配置(库函数)

推荐阅读最新更新时间:2024-03-16 16:10

在使用STM32的FSMC的一些体会。。
刚开始接触感觉似乎很难,真的是云里雾里。但是看了百度百科FMSC介绍以及芯嵌stm32入门视频《基于stm32的FSMC控制LCD的理解》视频终于对FMSC有自己的理解。虽然还有些细节还没有完全吃透,但是学东西就是需要在摸索中前进,停下来就是浪费时间。然后马上拿起板子,下载SRAM的例程运行。好正常运行。下面我们来看看相关的代码吧。 /*神舟SRAM读写程序相关定义*/ #define BUFFER_SIZE 0x400 /*定义读写BUFFER大小*/ #define WRITE_READ_ADDR 0x8000 /*定义SRAM读写的地址*/ ErrorStatus HSEStartUpSt
[单片机]
STM32串口通信乱码详细处理方法
STM32串口通信以及温度采集搞定,其中主要遇到STM32系列单片机时钟树的问题,串口通信遇到串口调试助手能够接收到数据但出现乱码现象,开始一直以为是串口配置和程序代码问题,因为是第一次上电在线调试STM32板子,后面主要查串口波特率配置和收发函数程序段,如下图: 波特率设置成115200没问题,试着降低波特率改成9600和4800但问题依旧没有解决,紧接着如下处理: 将重定向函数注释,单独写串口发送字节和字符串函数,依旧失败。最后锁定到系统时钟配置上,由于手上的STM32开发板改用了12M的晶振,根据单片机时钟树的理解和解读,一般采用外部时钟HSE,系统时钟配置成72M,8*9=72,,12*6=72,对于 SYSCLK、
[单片机]
stm32使用swd下载的必备操作
1、一般stm32都会使用swd方式进行下载,因为节省引脚。 2、那么不管是否用到了JTAG引脚。最好的方式就是首先把jtag禁掉,以免自己操纵某个引脚时,发现引脚始终不能 按照设计进行拉高或者拉低操作。 3、禁掉jtag方式:GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 4、可以把这段代码放在gpio初始化中。
[单片机]
防盗功能的智能车模型举例
简介:本文采用增强型32位低功耗单片机STM32F103VC、指纹识别技术和无线通信GSM技术设计了汽车防盗系统,它利用人体指纹的生物特征的惟一性,通过指纹识别控制汽车的电路、油路等,从而达到防盗的目的,解决了目前广泛采用的无线遥控方式存在空中截码和非法获取电子钥匙合法开车等问题。GSM技术增加了人防功能,它能通过无线网络进行远程报警。本系统的设计,有效的弥补了单一防盗电路的缺点,保障了汽车的安全。 目前市场上销售的汽车防盗报警器多为加装式汽车防盗器和采用电子密码钥匙的汽车防盗器。加装式汽车防盗器主要采用串接式的线路,对于精通汽车电路的盗贼来说,用跨接的方法可很轻松地避开防盗电路,防盗系统如同虚设。 随着汽车市场的飞速发展
[单片机]
防盗功能的智能车模型举例
STM32 HSI RCC时钟配置
因为不用精确的定时,因此想不用外部晶振,直接使用内部的8MHz RC振荡器作为主振,倍频后系统时钟为36MHz 现将源代码贴在此处。 /********************************************************************** * 名 称:void RCC_HSEConfiguration(void) * 功 能:使用HSI作为主时钟,然后经过倍频PLL=36MHz * 入口参数:无 * 出口参数: ----------------------------------------------------------------------- * 说 明:
[单片机]
STM32】IIC的基本原理 实例:普通IO口模拟IIC时序读取24C02
IIC的基本介绍 IIC的简介 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备。它是半双工通信方式。 IIC总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此IIC总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。 IIC总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。
[单片机]
【<font color='red'>STM32</font>】IIC的基本原理 实例:普通IO口模拟IIC时序读取24C02
STM32单片机(11) DS18B20温度传感器实验
本程序主要实现 DS18B20温度传感器数据获取,并利用串口通信把温度数据传至计算机 注:使用普中科技开发板测试时,需要拔掉Boot1插口,因为用到的是PA15管脚, 由开发板电路图可知,需要改变PA15 管脚的映射,将其设置成普通IO口 参考资料 DS18B20中文手册.pdf http://download.csdn.net/detail/leytton/7742193 STM32-外设篇 视频教程(Cortex-M3)-主讲人:刘洋 http://yun.baidu.com/pcloud/album/info?uk=2853967793&album_id=5492137931588632574 main.c /**
[单片机]
基于指纹识别的汽车防盗系统设计
随着汽车大量进入家庭,汽车盗窃案件也呈上升趋势。现在市场上的汽车报警装置,普遍存在着误报率高和无法有效通知车主的缺陷。针对指纹的惟一性和终身不变性的特点,在现有嵌入式指纹识别系统的基础上,利用单片机STM32F103VC和GSM网络的短消息服务的优点,完成了汽车指纹报警系统的总体设计。实验证明该系统设计比较合理,方案可行性高,有较强的实用价值和广阔的应用前景。 随着汽车市场的飞速发展和人们生活水平的提高,越来越来多的汽车进入普通家庭。汽车防盗就显得尤为重要,成为一个亟待解决的重要的社会问题。目前市场上销售的汽车防盗报警器多为加装式汽车防盗器和采用电子密码钥匙的汽车防盗器。加装式汽车防盗器主要采用串接式的线路,对于精通汽车电路的盗贼
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved