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

福建省建设环卫协会网站宁波seo推广推荐公司

福建省建设环卫协会网站,宁波seo推广推荐公司,网站导航优化的描述,创意字体设计生成器方法1#xff1a; 如果需要将一个寄存器中的 bit2 和 bit3 两个位从 11 修改为 10#xff0c;可以使用如下的 C 语言代码实现#xff1a; // 将寄存器的 bit2 和 bit3 位从 11 修改为 10 volatile uint32_t *reg_addr (volatile uint32_t *)0x12345678; // 假设寄存器地址…方法1 如果需要将一个寄存器中的 bit2 和 bit3 两个位从 11 修改为 10可以使用如下的 C 语言代码实现 // 将寄存器的 bit2 和 bit3 位从 11 修改为 10 volatile uint32_t *reg_addr (volatile uint32_t *)0x12345678; // 假设寄存器地址为 0x12345678 *reg_addr ~(0x3 2); // 先将 bit2 和 bit3 位清零 *reg_addr | (0x2 2); // 使用按位或运算符将 bit2 和 bit3 位的值修改为 10首先使用指针 reg_addr 来指向该寄存器的地址同样使用了 volatile 关键字来确保编译器不会对该寄存器的读写进行优化。 然后使用按位与运算符 和按位取反运算符 ~ 将要修改的两个位清零。具体来说0x3 2 表示二进制数 1100将其取反得到 0011然后使用按位与运算符将该值与原始寄存器值进行按位与运算即可将 bit2 和 bit3 位清零。 最后使用按位或运算符 | 将要修改的值与原始寄存器值进行按位或运算将 bit2 和 bit3 位的值修改为 10。具体来说0x2 2 表示二进制数 1000左移 2 位得到 0010然后将其与原始寄存器值进行按位或运算即可将 bit2 和 bit3 位的值修改为 10。 需要注意的是这里的代码仅仅是修改了寄存器的 bit2 和 bit3 两个位如果需要修改其他位的值需要根据具体情况进行修改。同时为了保证修改寄存器的值不会对系统产生负面影响需要了解该寄存器的具体作用和使用规范。 方法2 还有一种比较简单的写法可以使用位域来直接修改寄存器的值。具体实现如下 // 将寄存器的 bit2 和 bit3 位从 11 修改为 10 volatile uint32_t *reg_addr (volatile uint32_t *)0x12345678; // 假设寄存器地址为 0x12345678 struct {uint32_t bit0_1 : 2;uint32_t bit2_3 : 2;uint32_t bit4_31 : 27; } *reg (typeof(reg)) reg_addr;reg-bit2_3 0x2; // 直接将 bit2 和 bit3 位的值修改为 10首先定义一个包含三个位域的结构体分别表示寄存器中的 bit01、bit23 和 bit4~31 三个部分。使用指针 reg 指向该寄存器的地址并将其类型转换为该结构体类型。 然后直接将 bit2~3 位的值修改为 10使用结构体成员访问符 - 访问 reg 结构体的 bit2_3 成员并将其赋值为 0x2即二进制数 10。 需要注意的是使用位域直接修改寄存器的值可能会受到编译器的优化影响因此需要确保编译器不会对代码进行优化。同时为了保证修改寄存器的值不会对系统产生负面影响需要了解该寄存器的具体作用和使用规范。 、 方法3 也可以使用位掩码和位移操作来修改寄存器的值实现比较简单。具体实现如下 // 将寄存器的 bit2 和 bit3 位从 11 修改为 10 volatile uint32_t *reg_addr (volatile uint32_t *)0x12345678; // 假设寄存器地址为 0x12345678 uint32_t mask 0x3 2; // 定义位掩码表示要修改的 bit2 和 bit3 位 uint32_t value 0x2 2; // 定义新的值表示要将 bit2 和 bit3 位修改为 10 *reg_addr (*reg_addr ~mask) | value; // 使用按位与和按位或运算符将寄存器的值修改为新值首先使用指针 reg_addr 来指向该寄存器的地址。 然后定义一个位掩码 mask表示要修改的 bit2 和 bit3 位。具体来说0x3 2 表示二进制数 1100左移 2 位得到 0011即表示要修改的 bit2 和 bit3 位。 接着定义新的值 value表示要将 bit2 和 bit3 位修改为 10。具体来说0x2 2 表示二进制数 1000左移 2 位得到 0100即表示要将 bit2 和 bit3 位修改为 10。 最后使用按位与运算符 、按位取反运算符 ~ 和按位或运算符 | 将原始寄存器值与新值进行按位与和按位或运算从而将 bit2 和 bit3 位的值修改为 10。具体来说*reg_addr ~mask 表示将寄存器中要修改的位清零| value 表示将新值按位或运算到寄存器中要修改的位上。 需要注意的是这里的代码仅仅是修改了寄存器的 bit2 和 bit3 两个位如果需要修改其他位的值需要根据具体情况进行修改。同时为了保证修改寄存器的值不会对系统产生负面影响需要了解该寄存器的具体作用和使用规范。
http://www.w-s-a.com/news/491025/

相关文章:

  • 外贸通网站建设网站建设7个主要流程图
  • 元气森林网络营销方式医疗网站优化怎么做
  • 手机网站制作报价表做网站公司做网站公司
  • 湖州网站设计吉林网站建设哪家好
  • 做存储各种环境信息的网站使用tag的网站
  • 阿里云用ip做网站网站开发员属于
  • 外链网盘下载南宁seo推广优化
  • 网站的推广方案有哪些此网站可能有
  • wordpress更改链接后网站打不开一键生成个人网站
  • 网站建设后台有哪些东西前端开发培训一般多少钱
  • 高端建设网站公司网站开发 源码
  • 企业网站的劣势园林景观设计公司简介范文
  • 网站建设程序招聘东营建设信息网登录
  • o2o是什么意思通俗讲seo与网站优化 pdf
  • 外贸网站外包一般建设一个网站多少钱
  • 抄袭别人网站的前端代码合法吗网络促销策略
  • 用wordpress制作网站做资源网站
  • wordpress 发布网站南宁网站建设网站
  • 职业生涯规划大赛心得贵阳哪家网站做优化排名最好
  • wordpress 图片懒加载北京网站优化和推广
  • 深圳网站建设工作一个dede管理两个网站
  • 被禁止访问网站怎么办中国建筑网官网查询系统
  • 网站管理运营建设网贷网站
  • 深圳市龙岗区住房和建设局网站怎么给网站做404界面
  • 设计类网站网站系统 建设和软件岗位职责
  • 网站后台打开慢站长之家网址ip查询
  • 图书馆网站设计方案家具设计作品
  • 马鞍山做网站公司排名徐州网站外包
  • 十堰微网站建设电话宣传型网站建设
  • 电脑制作网站教程网络公司除了建网站