STM32 C++编程 002 GPIO类

使用 C++ 语言给 STM32 编写一个 Gpio

我使用的STM32芯片:STM32F103ZET6
我们使用的STM32库版本:V3.5.0



注意:

  • 想学习本套 STM32 C++编程 的专栏是有点门槛的。你需要有一点点 STM32 基础 和 一点点 C++ 语言基础。

  • 完整的STM32 C++工程模板 的下载地址可以在本篇博客的最下面找到。


Gpio.h

//Gpio.h
//#pragma once   //编译一次
#ifndef __AOBO_stm3210x_Gpio_H_
#define     __AOBO_stm3210x_Gpio_H_

#include "stm32f10x.h"

/*--------------------Gpio--------------------------------------*/
// //eg:
//  Gpio  key1(RCC_APB2Periph_GPIOC,GPIOC,GPIO_Pin_1,GM_IN_FLOATING);
//  Gpio  pins(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,GPIOC,GPIO_Pin_1|GPIO_Pin_10);
//  Gpio  EnTk(PA,0);
//   特别注意:
//   1.当你使用PB3,4 PA13,14,15 时一定要加上这2句:
//          RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
//      GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);  // 同时关闭 JLink 和 STlink
//   2.PD0,1 是不能被用做I/O口使用的 . 他们是接外部进制的

namespace stm32f10x
{


typedef struct   tagGPIO_PIN
{
    uint32_t            periph;//eg:RCC_APB2Periph_GPIOF
    GPIO_TypeDef*           port;    //eg:GPIOF
    uint16_t            pin;     //eg:GPIO_Pin_10
    GPIOMode_TypeDef    mode;    //eg.GPIO_Mode_IN_FLOATING;
    GPIOSpeed_TypeDef   speed;   //eg.GPIO_Speed_50MHz
}GPIO_PIN;

enum PORT_INDEX
{
    PA=0,PB,PC,PD,PE,PF,PG 
};

typedef struct _periph_PORT
{
    uint32_t        p_periph;
    GPIO_TypeDef*       p
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值