当前位置: 首页 > news >正文

STM32 标准库函数 GPIO_SetBits、GPIO_ResetBits、GPIO_WriteBit、GPIO_Write 区别

GPIO_SetBits:

使用例:

GPIO_SetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_2);

意思是将GPIOA1和GPIOA2设为高电平

GPIO_SetBits(GPIOA, 0x0003);

意思也是将GPIOA1和GPIOA2设为高电平

实际上当选中GPIOA时,它会按位遍历,在哪一位有1说明对应GPIOA的那一位输出高电平

GPIO_ResetBits:

使用例:

GPIO_ResetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_2);

意思是将GPIOA1和GPIOA2设为低电平

GPIO_ResetBits(GPIOA, 0x0003);

意思也是将GPIOA1和GPIOA2设为低电平

实际上当选中GPIOA时,它会按位遍历,在哪一位有1说明对应GPIOA的那一位输出低电平

GPIO_WriteBit:

使用例:

GPIO_WriteBit(GPIOA, GPIO_Pin_1 | GPIO_Pin_2, BIT_SET);

意思是将GPIOA1和GPIOA2设为高电平

GPIO_WriteBit(GPIOA, 0x0003, BIT_SET);

意思也是将GPIOA1和GPIOA2设为高电平

实际上当选中GPIOA时,它会按位遍历,在哪一位有1说明对应GPIOA的那一位输出高电平

对端口位进行写操作,支持BIT_SET/BIT_RESET,写高电平或写低电平,可以选同端口多位

相当于第一二个函数的结合体

当然用第一二个函数也可以实现相同功能

比如:

GPIO_SetBits(GPIOA, ~0x0003);
GPIO_ResetBits(GPIOA, 0x0003);

 这两个其实是等效的

GPIO_Write:

使用例:

GPIO_Write(GPIOA, 0X0003);

意思是将GPIOA1和GPIOA2设为高电平

等效于: 

GPIO_SetBits(GPIOA, 0x0003);
GPIO_ResetBits(GPIOA, ~0x0003);
GPIO_WriteBit(GPIOA, 0x0003, BIT_SET);


http://www.mrgr.cn/news/76408.html

相关文章:

  • 使用pdfjs加载多页pdf并实现打印
  • PHP大模型深度学习库TransformersPHP 安装体验
  • 欧拉开机显示机器信息官方脚本
  • 【阅读记录-章节2】Build a Large Language Model (From Scratch)
  • uniapp: 微信小程序包体积超过2M的优化方法
  • 如何平滑切换Containerd数据目录
  • 【笔记】关于git和GitHub和git bash
  • 嵌入式交叉编译:harfbuzz
  • 计算机网络——路由选择算法
  • HarmonyOS ArkUI(基于ArkTS) 开发布局 (中)
  • Golang超详细入门教程
  • Android15之解决:Dex checksum does not match for dex:framework.jar问题(二百三十九)
  • 针对git、giteeVSCode连接的使用 || Live Share插件使用
  • Python接口自动化测试
  • 036集——查询CAD图元属性字段信息:窗体显示(CAD—C#二次开发入门)
  • 蓝桥杯c++算法学习【3】之思维与贪心(重复字符串、翻硬币、乘积最大、皮亚诺曲线距离【难】:::非常典型的必刷例题!!!)
  • 两行命令搭建深度学习环境(Docker/torch2.5.1+cu118/命令行美化+插件),含完整的 Docker 安装步骤
  • SpringMVC跨线程获取requests请求对象(子线程共享servletRequestAttributes)和跨线程获取token信息
  • 2:Vue.js 父子组件通信:让你的组件“说话”
  • 从0开始学习机器学习--Day26--聚类算法
  • uniapp微信登录的流程
  • 数据结构(基本概念及顺序表)
  • [JAVA]有关MyBatis环境配置介绍
  • docker busybox作为initContainers
  • 系统架构设计师:软件架构的演化和维护
  • 解决laravel框架生成的pdf过大的问题