stm32学习笔记,GPIO

开发板中PB0连接led,PBO为输出高电平时,led为亮,

程序格式

头文件
main(
时钟设置
led初始化
while(1)


函数

//初始化输出模版
void LED_Init(void){ //LED灯的接口初始化
	GPIO_InitTypeDef  GPIO_InitStructure;  定义结构体 	
  	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE);     //启动时钟  APB2  上的A B C 端口,//个人认为可能只需要B就可以了 
    GPIO_InitStructure.GPIO_Pin = LED1 | LED2; //选择端口号(0~15或all)引用头文件GPIO_Pin_0;     GPIO_Pin_1;       //GPIO_Pin_all  全部0-15              
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //选择IO接口工作方式    参考下面工作方式   
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置IO接口速度(2/10/50MHz)  //只有输出的时候需要,输入不需要  
	GPIO_Init(LEDPORT, &GPIO_InitStructure);	//LEDPORT 引用头文件		
}

//初始化输入模板
void LED_Init(void){ //LED灯的接口初始化
	GPIO_InitTypeDef  GPIO_InitStructure;  定义结构体 	
  	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE);     //启动时钟  APB2  上的A B C 端口,//个人认为可能只需要B就可以了 
    GPIO_InitStructure.GPIO_Pin = LED1 | LED2; //选择端口号(0~15或all)引用头文件GPIO_Pin_0;     GPIO_Pin_1;       //GPIO_Pin_all  全部0-15              
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //选择IO接口工作方式    参考下面工作方式   
    //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置IO接口速度(2/10/50MHz)  //只有输出的时候需要,输入不需要  
	GPIO_Init(LEDPORT, &GPIO_InitStructure);	//LEDPORT 引用头文件		
}


//选择IO接口工作方式:
//GPIO_Mode_AIN 模拟输入
//GPIO_Mode_IN_FLOATING 浮空输入
//GPIO_Mode_IPD 下拉输入
//GPIO_Mode_IPU 上拉输入
//GPIO_Mode_Out_PP 推挽输出
//GPIO_Mode_Out_OD 开漏输出
//GPIO_Mode_AF_PP 复用推挽输出
//GPIO_Mode_AF_OD 复用开漏输出
//常用命令。其实个人理解这个可以参考手册,如果迁移其他单片机也可以参考,常用的如下:
//写输出,我要对别人做什么
GPIO_WriteBit(GPIOx,GPIO_Pin_x,  (BitAction) (0/1)//或Bit_RESET   Bit_SET)
GPIO_ResetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);//置地
GPIO_SetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);//置高
GPIO_Write(GPIOA, 0x1101);//整个端口写入

//读输出,我不知道我干了啥,我要看看
ReadValue = GPIO_ReadOutputData(GPIOC);//整组读取输出状态
ReadValue = GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_7)//指定端口读取输出状态
//读输入,我不知道别人对我做了啥,我要看看
ReadValue = GPIO_ReadInputData(GPIOC)//整组读取输入状态,个人理解是可以并行通讯的读入
ReadValue = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7)//指定端口输入状态,类似按键或其他串行输入

不开中断的情况下,个人认为已经满足新手多数问题了,中断还没学,等学了再更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值