GPIO端口的BSRR的使用

BSRR 只写寄存器

既能控制管脚为高电平,也能控制管脚为低电平。
对寄存器高 16bit 1 对应管脚为低电平,对寄存器低16bit1对应管脚为高电平。写 0 ,无动作

首先看GPIOC的定义

接着看这个类型的定义

可以看到BSRR为无符号的32位的整形

接下来看GPIO_Pin_13的定义

可以看到为无符号的16位置的整形。

	GPIOC->BSRR|=	GPIO_Pin_13<<16;   //给高16位写1  对寄存器高 16bit 写1 对应管脚为低电平 写 0 

接下来理解上边的那一行代码

将pin13引脚的值左移16位,此时相当于在高16位写1。高16位写1,为低电平。

GPIOC->BSRR = GPIOC->BSRR| GPIO_Pin_13; //给低16位写1   	对寄存器低16bit写1对应管脚为高电平 写 0 ,无动作

直接将pin13引脚的值写入,此时相当于在低16位写1。低16位写1,为高电平。

最终理解

BSRR的初始值为0x00000000,当使用BSRR给引脚写入低16位(0x2000),此时就会写入0x00002000(将这个值写入IDR),随后BSRR又会变为0x00000000。当使用BSRR给引脚写入高16位(0x20000000),此时就会写入0x20000000(将这个值写入IDR),随后BSRR又会变为0x00000000。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/571897.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CD盘里的cda文件如何拷取成mp3?

CDA并非一种独立的音频文件格式&#xff0c;而是指存储在音乐CD上的音轨文件。这种格式的起源可以追溯到CD制造商对一种在CD播放器上直接播放音轨的需求&#xff0c;而不是在计算机上存储音频文件。因此&#xff0c;CDA通常存在于音乐CD中&#xff0c;为提供一种便捷的音频存储…

Unity 背包系统中拖拽物体到指定位置或互换位置效果的实现

在Unity中&#xff0c;背包系统是一种常见的游戏系统&#xff0c;可以用于管理和展示玩家所持有的物品、道具或装备。 其中的拖拽功能非常有意思&#xff0c;具体功能就是玩家可以通过拖拽物品图标来移动物品在背包中的位置&#xff0c;或者将物品拖拽到其他位置或界面中&…

五分钟,零基础也能入门 Python 图像文字识别

一. 前言 最近在研究 Python 的一些功能 &#xff0c; 也尝试了一些有趣实现&#xff0c; 这一篇就从实践的角度来研究一下 Python 如何实现图片识别。 众所周知 &#xff0c; Python 的库真的老多了&#xff0c;其中在图像识别上比较突出的就是 OpenCV. 那么基于这个库我们…

前缀和算法(1)

一维前缀和[模板] 一、题目描述 OJ题目链接&#xff1a;【模板】前缀和_牛客题霸_牛客网 二、思路解析 三、代码 #include <iostream> using namespace std; const int N 100010; long long arr[N], dp[N]; int n, q; int main() {cin >> n >> q;// 读取…

Spring Data Elasticsearch 与ES版本对应关系记录

参考&#xff1a; Versions :: Spring Data Elasticsearch

0基础 三个月掌握C语言(15)

动态内存管理 为什么要有动态内存分配 我们已经掌握的内存开辟⽅式有&#xff1a; int val 20; //在栈空间上开辟四个字节 char arr[10] {0}; //在栈空间上开辟10个字节的连续空间 但上述的开辟空间的⽅式有两个特点&#xff1a; • 空间开辟⼤⼩是固定的。 • 数组…

让AI给你写代码(七)- 结合语意匹配,引导AI小助手逐步完善代码,新增功能(下)案例说明

结合上一篇 让AI给你写代码&#xff08;六&#xff09;- 结合语意匹配&#xff0c;引导AI小助手逐步完善代码&#xff0c;新增功能&#xff08;上&#xff09; 我们看一个实际的通过提示引导小助手逐步集成构建代码的实例 例子很简单&#xff1a; 获得指定股票最近一定时间的&a…

GNU Radio之OFDM Carrier Allocator底层C++实现

文章目录 前言一、OFDM Carrier Allocator 简介二、底层 C 实现1、make 函数2、ofdm_carrier_allocator_cvc_impl 函数3、calculate_output_stream_length 函数4、work 函数5、~ofdm_carrier_allocator_cvc_impl 函数 三、OFDM 数据格式 前言 OFDM Carrier Allocator 是 OFDM …

Docker进阶:Docker Swarm —弹性伸缩调整服务的副本数量

Docker进阶&#xff1a;Docker Swarm —弹性伸缩调整服务的副本数量 1、 创建一个Nginx服务&#xff08;Manager节点&#xff09;2、查看服务状态&#xff08;Manager节点&#xff09;3、测试访问&#xff08;Worker节点&#xff09;4、查看服务日志&#xff08;Manager节点&am…

mysql 高阶语句 与视图

目录 一 前言 二 msql 高阶语句使用方法 &#xff08;一&#xff09; 查询并排序&#xff08;order by&#xff09; 1&#xff0c;排序方式 2&#xff0c;查询指定列 并排序 3, 条件判断&#xff08;过滤指定行&#xff09; 再查询指定列 并排序 4&#xff0c;查…

IDEA的Scala环境搭建

目录 前言 Scala的概述 Scala环境的搭建 一、配置Windows的JAVA环境 二、配置Windows的Scala环境 编写一个Scala程序 前言 学习Scala最好先掌握Java基础及高级部分知识&#xff0c;文章正文中会提到Scala与Java的联系&#xff0c;简单来讲Scala好比是Java的加强版&#x…

IDEA2023版本创建spring boot项目时,Java版本无法选择Java8问题解决

先简单说下出现本问题的原因&#xff1a; spring boot3.0发布时提到未来Java17将会成为主流版本&#xff0c;所有的Java EE Api都需要迁移到Jakarta EE上来。而spring boot3.0及以上版本已经不支持Java8了&#xff0c;支持Java17及以上版本。同时官方支持项目初始化的 Spring B…