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

寄存器相关及清零、置1、取反等位移操作

驱动单元

  • DCode总线:访问数据
  • 系统总线:访问外设的寄存器,比如读写寄存器
  • DMA总线:传输数据,数据可以在某个外设的数据寄存器,也可在SRAM,还可在内部FLASH,数据可被DCode总线和DMA总线访问,为了避免访问冲突,取数据时需经过总线矩阵仲裁决定。

被动单元

  • 内部的闪存存储器:FLASH,内核通过ICode总线取其中的指令;
  • 内部的SRAM:程序的变量、堆栈的开销都基于内部的SRAM。内核通过DCode总线访问它;
  • FSMC:即灵活的静态的存储器控制器,一个可扩展静态内存的外设,如外部SRAM、NANDFLASH、NORFLASH;
  • AHB总线:挂载外设,比如GPIO、串口、I2C、SPI等
  • STM32F10xx系统框图

C语言中对某一位或几位清零操作

对变量a的第x位清零,就1<<x位,再取反,跟a位与操作即可得到清零操作,例如a = 0x2f,对其第2位清零,1左移2位得到0000 0100,按位取反后得到1111 1011,再与a相与,1111 1011&0010 1111 = 0010 1011

若要对某几位清零:a = 0x2f(0010 1111),若要对bit2、bit3清零,则先得到0000 1100(掩码值),需要3<<2,再按位取反得到1111 0011,最后与0010 1111相与后得到0010 0011。

C语言中对某一位或几位置1操作

a = 0x2f(0010 1111),若对bit4置1,则1<<4得到0001 0000,然后与0010 1111按位或得到0011 1111
若对某几位(bit6、bit7)置1则3<<6得到1100 0000,然后与0010 1111按位或得到1110 1111

C语言中对变量某位取反操作

a = 0x2f(0010 1111),若要将bit6取反,则先1<<6得到0100 0000,与0010 1111异或后得到0110 1111

http://www.dtcms.com/a/116788.html

相关文章:

  • 进程的创建态、运行状态和阻塞状态
  • FreeRTOS与RT-Thread深度对比:从入门到精通的全面解析
  • Redlinux(2025.3.29)
  • 地图与图层操作
  • 18-产品经理-跟踪进度
  • DeepSeek-R1-Distil-Qwen-7B:为何说它是Qwen模型的“瘦身版”?
  • 计科数据库第二次上机操作--实验二 表的简单查询
  • 从Oracle和TiDB的HTAP说起
  • 人工智能通识速览(Part5. 大语言模型)
  • 爬虫:一文掌握 Pydoll 的详细使用(彻底改变浏览器自动化,且能绕过绕过验证码!)
  • Spring Cloud之服务入口Gateway之Route Predicate Factories
  • 利用解析差异SSRF + sqlite注入 + waf逻辑漏洞 -- xyctf 2025 fate WP
  • Python高阶函数-sorted(深度解析从原理到实战)
  • 行星际介质与等离子体环境
  • Day20 -实例:红蓝队优秀集成式信息打点工具的配置使用
  • 1990-2019年各地级市GDP数据
  • XC7K160T-2FFG676I Kintex‑7系列 Xilinx 赛灵思 FPGA 详细技术规格
  • QML菜单控件:菜单的常规用法
  • aws s3api 常用命令
  • 创意 Python 爱心代码
  • ⭐算法OJ⭐滑动窗口最大值【双端队列(deque)】Sliding Window Maximum
  • 【玩转全栈】—— Django 连接 vue3 保姆级教程,前后端分离式项目2025年4月最新!!!
  • 交换机可以代替路由器的功能吗
  • 低代码开发革命:用 ZKmall开源商城可视化逻辑编排实现业务流程再造
  • 【计网】TCP协议的拥塞控制与流量控制
  • 【数据库系统原理】知识点
  • 一个简单的php加密的理解
  • 数据结构实验3.2:链栈的基本操作与括号匹配问题
  • 《Java八股文の文艺复兴》第十一篇:量子永生架构——对象池的混沌边缘(终极试炼·完全体)
  • 文本情感分析预处理教程:从数据采集到可视化