【嵌入式中的C】寄存器清零和置位操作

2023-11-05

对寄存器中的某一位进行操作

如果是封装到具体功能Bit以及bit组的代码工程,可以直接进行赋值。封装代码的方式可以参看这个链接 嵌入式中的C:联合体 union以及一般使用方式

如果是整个寄存器呢
比如stm32寄存器映射的时候标准库是这么处理的
在这里插入图片描述
在这里插入图片描述
(unsigned int)(0x4002 0410) = 0xFFFF;
对整个寄存器进行赋值。

但是如果只想操作其中的1位或者几位,可以使用移位操作。

清零

将第7位清0

a = (a & ~(1<<7)); 
a &= ~(1<<7);

置位

a = (a | 1<<7);
a |= 1<<7;

读位

a = 0xA0;
b = ( a&(1<<7) ) >> 7;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【嵌入式中的C】寄存器清零和置位操作 的相关文章

  • Tcl/TK基础语法学习(三)---字符串

    字符串基本用法 字符串表示 指定重复次数 string repeat 指定字符类型 sting is 返回 0 1 字符串长度 string length 包括空格 索引值 字符索引string index 字符获取 sring range
  • WebDriver介绍

    什么是Selenium 和WebDriver Selenium是一个浏览器自动化操作框架 Selenium主要由三种工具组成 第一个工具SeleniumIDE 是Firefox的扩展插件 支持用户录制和回访测试 录制 回访模式存在局限性 对
  • 蓝牙之十一 AVRCP协议

    Profile简介 AVRCP子协议的作用是支持CT控制TG 具体来说如果手机和一个蓝牙音箱设备连接上了 那么音箱可以控制手机播放 暂停 切歌以及获得手机上播放歌曲的信息 如专辑 歌名 歌手 时长等信息 iphone对信息获取支持较为完善

随机推荐

  • mac去除dmg打开密码的方法

    由于使用osx 系统 经常会访问到很多网站下载的dmg都会有密码 特别是风云社区上面的几千款免费精品Mac软件 社区地址如下 每次操作起来还是挺麻烦的 所以我们得去除这个密码 毕竟作为一个开发者不管是写代码还是电脑使用都得高效 一 打开di
  • socket通信中的几个重要结构体定义

    struct sockaddr unsigned short sa family 地址类型 AF xxx char sa data 14 14字节的端口和地址 struct sockaddr in short int sin family
  • CentOs7静默安装oracle11

    我们安装几个必要的工具 yum y install vim yum y install unzip yum y install lrzsz yum y update 先装这几个 安装Oracle11GR2所需要的依赖包 我们准备以下软件 l
  • Oracle 体系结构

    体系结构包括实例 SGA 后台进程 数据库文件 用户进程和服务器进程以及其他文件 如参数文件密码文件和归档日志文件等 1 物理结构 文件组成 数据文件 数据库操作中数据的最终存储位置 控制文件 验证数据库完整性 重做日志文件 在发生故障时用
  • Python通过日志loguru记录程序中的中间变量,同时导出并分析

    文章目录 思路 示例代码 1 源程序中这样保存中间结果 2 解析中间结果并导出 在程序运行的时候除了密密麻麻的日志外 这些关键函数的输入输出也十分重要 是回溯与数据核对的唯一 思路 使用loguru日志库 将不常见的 TRACE 级别作为保
  • 虚拟机ubuntu设置和windows的共享文件夹

    vmware workstation 12 ubuntu 16 04 参考 VMware下Ubuntu与宿主Windows共享文件夹 VMware无法通过mount挂载共享文件夹 下面的评论 ubuntu 执行apt get update报
  • 找不到vcruntime140.dll无法继续执行代码怎么办?(详解)

    1 vcruntime140 dll是什么 有什么作用 vcruntime140 dll是Windows操作系统中的一个动态链接库文件 它属于Microsoft Visual C Redistributable的一部分 DLL是Dynami
  • Metro UI CSS 学习笔记之组件(对话框)

    查阅Metro UI CSS 对组件 对话框 描述 本人觉得已经描述的很详细 所以在这里不打算做详细的讲解 大家可以直接阅读以下源代码 是进过本人已经优化后的代码 温馨提示 相关注释 也已经在代码中添加
  • 玩转ChatGPT:名单排序

    一 写在前面 最近在文秘工作中 碰到一个名字排序的问题 大概的规则 1 按照第一个汉字的首字母的英文单词排序 从A Z 2 若第一个字的首字母一致 则比较二个字的首字母 同样是A Z 3 若第二个字的首字母一致 则比较三个字的首字母 同样是
  • Webpack5核心原理与应用实践(基础用法)一

    前言 记录Webpack基本配置规则 根据场景 技术栈运用具体方法 工具与技巧 主要有 搭建完善的JavaScript CSS开发环境 搭建微前端 NPM包 桌面应用等 一 Webpack配置项 1 Webpack编译流程 Webpak原生
  • 【1day】复现Cellular Router命令执行漏洞

    注 该文章来自作者日常学习笔记 请勿利用文章内的相关技术从事非法测试 如因此产生的一切不良后果与作者无关 目录 一 漏洞描述 二 影响版本 三 资产测绘 四 漏洞复现 一 漏
  • vue-cli 项目集成 Jest 单元测试

    前言 前端单元测试对于保证代码质量和稳定性是非常重要的 为什么需要单元测试 检测bug 提升回归效率 保证代码质量 一 框架对比 Mocha 比较灵活成熟 但没有内部集成 需要自主选择断言库和监听库 Jasmine 是 Jest 的底层库
  • 堆,栈、和内存管理

    1 stack 栈 是存在于某作用域 scope 的一个内存空间 memory space 例如当你调用函数 函数本身即会生成一个stack用来放置它所接收的参数 以及返回地址 在函数本身 function body 内声明的任何变量其所使
  • 2023年陕西省《网络建设与运维》技能大赛试题

    项目简介 某集团公司原在北京建立了总公司 后在成都建立了分公司 广东设立了办事处 集团设有产品 营销 法务 财务 人力5个部门 全网采用OSPF RIP ISIS BGP路由协议进行互联互通 集团在北京建立两个数据中心 贵州建立异地灾备数据
  • npm 常见插件安装

    npm 常见插件安装 为方便项目中遇到各种插件的安装 特做以下的积累 持续更新中 1 element ui npm i element ui S 2 vuex npm install vuex 3 vue cli npm install g
  • Flyway简介及使用

    Flyway简介及使用 1 简介 1 1 Flyway是什么 Flyway是一款开源的数据库版本管理工具 它更倾向于规约优于配置的方式 Flyway可以独立于应用实现管理并跟踪数据库变更 支持数据库版本自动升级 并且有一套默认的规约 不需要
  • AngularJS弹出框 $modal的使用

    HTML 注意在Chrome浏览器中会给input添加默认样式 影响到打钩的框出不来 主要是position和影响透明度的opacity
  • 顺序栈的基本操作

    顺序栈的基本操作 08 09 21 21 06 lkm 顺序栈的基本操作 include
  • Android文件存储(例子)

    Android文件存储 例子 Android的文件存储 有I O流的方式存储 与java一样 还有一种Android自己的SharePreferences存储方法 下面看一个例子 用I O流的方式存储方法和SharePreferences存
  • 【嵌入式中的C】寄存器清零和置位操作

    对寄存器中的某一位进行操作 如果是封装到具体功能Bit以及bit组的代码工程 可以直接进行赋值 封装代码的方式可以参看这个链接 嵌入式中的C 联合体 union以及一般使用方式 如果是整个寄存器呢 比如stm32寄存器映射的时候标准库是这么