STM32GPIO使用(GPIO读取,输出)学习笔记

好的上一期我们讲了GPIO的设置(初始化),这一期我们来讲一下GPIO怎么使用。

就根据上一期代码接着来。但是具体使用前我们先看一下固件库函数手册:

蓝色是读取,红色是输出

上一期我们已经初始化了GPIOA的Pin0、1号脚为推挽输出GPIOB的Pin0、1号脚为上拉输入,现在就先让GPIOA_Pin_0和1输出高低电平。(单片机点灯工程师QvQ

输出

这里我们看到GPIO输出函数是四条我们可以分为三种方式。

方式一:GPIO_SetBit置位指定端口和GPIO_ResetBits复位/清除指定端口,函数使用时所用的两个参数那组端口和具体的端口号

方式二:GPIO_WriteBit置位或复位具体端口

方式三:GPIO_Write整组端口进行操作

/**
参数1:那组GPIOx端口;
参数2:具体的端口号GPIO_Pin_x;
**/
GPIO_SetBits(GPIOA, GPIO_Pin_0);  //使A组0号端口输出高电平
GPIO_ResetBits(GPIOA, GPIO_Pin_0);  //使A组0号端口输出低电平
/**
参数1:那组GPIOx端口;
参数2:具体的端口号GPIO_Pin_x;
参数3:是置位Bit_SET还是Bit_RESET复位,还可以用(BitAction)(0或1)这种方式
**/
GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET);  //使A组0号端口输出高电平
GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET);  //使A组0号端口输出低电平
/**
参数1:那组GPIOx端口;
参数2:写入整组端口的值
我们初始化了0、1端口所以对整组端口操作时候0、1都会被操作
**/
GPIO_Write(GPIOA, 0x0001);  //直接数值操作将变量值写入GPIOA,0口置位,1口复位
GPIO_Write(GPIOA, 0x0000);  //直接数值操作将变量值写入GPIOA
读取

读取我分为两种:读取输入读取输出,同时这两种还分为读取整组端口和读取具体端口

/**
读取端口的输出值
**/
GPIO_ReadOutputData(GPIOA);  //读取整组端口的输出,返回值是四位16进制
GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_0);  //读取GPIOA的0号端口的输出值,返回值是0、1
/**
读取端口的输入值
**/
GPIO_ReadInputData(GPIOB);  //读取整组端口的输入,返回值是四位16进制
GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0);  //读取GPIOB的0号端口的输入值,返回值是0、1

好的你现在已经了解了GPIO端口基本的读取和输出,可以去写个根据KEY点亮LED和代码了

当然这里还有个骚操作,大家可以看看这个代码是什么意思,实现了什么操作:

GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)(! GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0)));
delay_ms(500);
具体函数说明:

  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值