c语言中寄存器设置方法,C 编程之——寄存器赋值操作

2023-05-16

通过这段时间的工作和学习,我感觉在嵌入式硬件编程中,大多数情况下都是对相应硬件的功能寄存器进行设置和操作。

一, 寄存器的设置和操作特性

1,一个寄存器的每个位有其不同的意义,进行不同的设置会使硬件产生不同的效果和功能;

2,有些情况下需要对一个寄存器进行连续的不同的甚至完全相反的设置;

3,有些情况下需要对一个寄存器中的某一位或一位进行连续的不同的甚至完全相反的设置,而其余的位要保持不变;

4,有时,对一个寄存器进行设置时,对其不同的位进行先后顺序不同的设置,即对其各个位有先后设置的顺序的要求,使硬件产生的结果也不同;

5,有时,对于一个寄存器要求必须一次赋值,若对其某些位赋值先后顺序不同,便达不到预期的效果和功能。

二,寄存器的赋值操作方法

为说明方便,定义如下3个8位的寄存器:

#define   REG     0xFFFFFF10

1,对单个的位进行赋值

(1)    将寄存器REG的第5位置“1”

REG |= (1 << 5);

(2)    将寄存器REG的第5位清零

REG &= ~(1 << 5);

(3)    将寄存器REG的第3、5位置“1”

REG |= (1 << 5) | (1 << 3);

(4)    将寄存器REG的第3、5位清零

REG &= ~( (1 << 5) | (1 << 3) );

2,直接赋值

(1)将寄存器REG的0、1、2、3、5、7位置“1”

REG = 0x5F;

(即给寄存器REG1赋值为1010 1111,这种方法多在初始化中使用)

(2)分别将寄存器REG的1、3、5、7位置“1”,0、2位置“0”

uint32 temp;

tmep = REG;

temp &= ~0x01;

temp |= (1 << 1);

temp &= ~(1 << 2);

temp |= (1 << 3);

temp |= (1 << 5);

temp |= (1 << 7);

REG = temp;

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

c语言中寄存器设置方法,C 编程之——寄存器赋值操作 的相关文章

  • 一个封装HTTP请求的函数(C++)

    这里封装 了HTTP请求的 xff0c 支持GET与POST xff0c 并支持各种参数组合 xff0c 调用方式很简单 使用DEVWEB WebRequest string http www luaie com ret 就可以了 如果使用
  • c++ vector 用法总结

    vector 是向量类型 xff0c 它可以容纳许多类型的数据 xff0c 如若干个整数 xff0c 所以称其为容器 vector 是C 43 43 STL的一个重要成员 xff0c 使用它时需要包含头文件 xff1a include lt
  • ubuntu命令行语法_HTTPie:超爽的HTTP命令行客户端

    之前在命令行下进行HTTP服务的调试和信息查看都是使用经典的cURL xff0c 不过前段时间发现一个交互更加友好的工具 xff0c 就是HTTPie 先放一个HTTPie官方的一个HTTPie VS cURL的图给大家看看 如果你经常需要
  • 如何用c语言串口通讯,串口通信入门

    在讲解本章的内容之前请大家先反复阅读 手把手教你学51单片机 文档的第11章内容 xff0c 很多概念文档都已详细讲解有 1 波特率 串口通信就是单片机与电脑端 xff0c 单片机与单片机 xff0c 单片机与模块器件之间互发信息进行通信
  • php和js区别

    php和js区别 两者在语法上类似 xff0c 楼上说的对 xff0c js 61 javascript是工作在浏览器端的脚本语言 xff0c 他所提交的数据是交给浏览器来处理的 但是现在的Ajax技术已经可以把js提交的数据交付到浏览器来
  • web前端利用turf.js生成等值线、等值面

    样例如下 xff1a lt DOCTYPE html gt lt html xmlns 61 34 http www w3 org 1999 xhtml 34 gt lt head gt lt meta http equiv 61 34 C
  • python模块名和文件名冲突解决

    对于python初学者 xff0c 很容易练习到一个随机数生成的程序 xff0c 代码如下 xff1a 1 usr bin python 2 import random 3 print random randint 12 20 这个小程序最
  • python3 logging 'ascii' codec can't encode characters

    环境 xff1a mac 10 12 python3 django 1 10 问题发现 最近刚从arch 换到 mac下搬砖 xff0c 发现在arch跑的好好的代码 xff0c 在mac下 终端老是报错 还是编码错误 code try i
  • Hutool之文件工具——FileUtil

    为什么80 的码农都做不了架构师 xff1f gt gt gt 简介 我想在Java工具中 xff0c 文件操作应该也是使用相当频繁的 xff0c 但是Java对文件的操作由于牵涉到流 xff0c 所以较为繁琐 xff0c 各种Stream
  • java中数字与ASCII码的相互转换

    2019独角兽企业重金招聘Python工程师标准 gt gt gt code 测试demo public static void main String args int a 61 91151561 for byte b String va
  • IDEA怎么查看现在的项目使用的JDK版本? 2016年4月19日22:51

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 右键单击项目 xff0c 选择 或者直接使用F4 转载于 https my oschina net sprouting blog 670222
  • 什么是北向接口和南向接口

    Northbound Interface Southbound Interface 南向接口 xff1a 管理其他厂家网管或设备的接口 xff0c 即向下提供的接口 北向接口 xff1a 提供给其他厂家或运营商进行接入和管理的接口 xff0
  • 官网下载mysql源码

    官网下载mysql源码 xff0c 如下为具体步骤 xff1a 1 进入官网点击download页https www mysql com downloads 2 点击MySQL Community Edition进入mysql社区版下载页面
  • Vue设置button的disable属性

    表单元素有一个disable属性 xff0c 用来控制该元素是否可用 1 这个属性在HTML里只有1个值 xff0c 用法就是 lt button disable 61 34 disable 34 gt 点击 lt button gt 经实
  • 用C++进行简单的文件I/O操作

    序论 我曾发表过文件输入输出的文章 xff0c 现在觉得有必要再写一点 文件 I O 在C 43 43 中比烤蛋糕简单多了 在这篇文章里 xff0c 我会详细解释ASCII和二进制文件的输入输出的每个细节 xff0c 值得注意的是 xff0
  • VC++鼠标画圈

    int r 61 100 int x0 61 gameRect left 43 pt x int y0 61 gameRect top 43 pt y int x y double n 61 0 MoveTo x0 y0 while n l
  • matlab练习程序(求向量间的旋转矩阵与四元数)

    问题是这样 xff0c 如果我们知道两个向量v1和v2 xff0c 计算从v1转到v2的旋转矩阵和四元数 xff0c 由于旋转矩阵和四元数可以互转 xff0c 所以我们先计算四元数 我们可以认为v1绕着向量u旋转 角度到v2 xff0c u
  • 用lighttpd搭建一个简易的http服务器

    1 安装lighttpd 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 cd wget http download lighttpd net lighttpd releases
  • 结构体(对齐规则及举例)

    概念 一种数据结构 xff1b C语言中聚合数据类型的一类 xff1b 可以被声明为变量 数组 指针等 xff0c 用以实现比较复杂的数据结构 xff1b 是一系列元素的集合 xff0c 这些元素被称为结构体成员 xff1b 结构体成员需要
  • C++解析头文件-Qt自动生成信号定义

    目录 一 概述二 实现思路三 代码讲解 1 类图2 QtCppDescription3 测试四 源代码 一 概述 上一篇文章C 43 43 解析头文件 Qt自动生成信号声明我们主要讲解了怎么去解析C 43 43 头文件 xff0c 然后在指

随机推荐

  • VC++6.0与VS2010的区别

    区别1 字符串的表达 void CMy123Dlg OnBnClickedButton1 MessageBox 34 你好 34 以前VC6 0写法 现在用不了 老版本用的多字节字符集 MessageBox L 34 你好 34 L 是 u
  • 存储过程出现ORA-06508错误

    一个存储过程平时执行正常 xff0c 刚才执行出ORA 06508错误 百思不得其解 xff0c 好像没有什么不正常的地方啊 xff01 后来找到了答案 重现这个错误如下 xff1a 执行一个存储过程 xff0c 其运行时间比较长 刚开始运
  • 从零构建TCP/IP协议

    从零构建TCP IP协议 这次叫PCT协议 这篇博客是读完 图解TCP IP协议 和 TCP IP协议详解卷一 xff1a 协议 之后的总结 我从0构建了一个可靠的双工的有序的基于流的协议 xff0c 叫做PCT协议 OSI七层模型和TCP
  • c语言 checksum,crc校验方法,用c语言实现源代码(CRC checksum method, using C language source code).doc...

    crc校验方法 用c语言实现源代码 CRC checksum method using C language source code crc校验方法 用c语言实现源代码 CRC checksum method using C languag
  • arm: 使用结构体操作寄存器

    使用结构体操作 寄存器 xff1a 寄存器赋值和取值的时候 xff0c 要注意寄存器的长度 xff0c 有的寄存器的值只有8位 还要注意 xff0c 使用volatile修饰寄存器变量 volatile 参考http www cnblogs
  • 基于嵌入式操作系统VxWorks的多任务并发程序设计(5)――中断与任务

    基于嵌入式操作系统 VxWorks 的多任务并发程序设计 xff08 5 xff09 中断与任务 作者 xff1a 宋宝华 e mail email 21cnbao 64 21cn com email 出处 xff1a 软件报 中断处理是整
  • 四旋翼电池、电机、螺旋桨选型与搭配(转)

    源 xff1a 四旋翼电池 电机 螺旋桨选型与搭配
  • 《C++ Primer Plus》第3章 处理数据 学习笔记

    C 43 43 的基本类型分为两组 xff1a 一组由存储为证书的值组成 xff0c 另一组由存储为浮点格式的值组成 整型之间通过存储键值时使用的呢存及有无符号来区分 整型从最小到最大依次是 xff1a bool char signed c
  • Microbit  Turnipbit  孩子也能做的声光控开关

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 最近一直在研究Turnipbit这块板子 xff0c 之前也做了几个小实验 xff0c 研究了下针脚 xff0c 发现光敏传感器和声音传感器针脚能对的上 xff0c 就做了
  • 串口通信的三种方式(查询、中断、DMA)

    PC机串口定义如下图 xff1a 一般的单片机串口应用只需3根信号线 xff1a 3脚TXD xff08 发送数据 xff09 2脚RXD xff08 接收数据 xff09 5脚SG xff08 信号地 xff09 其中单片机的TXD对应连
  • SQL SERVER 大小写敏感问题

    SQL SERVER大小写敏感问题 xff0c 其实是两个问题 xff1a 标识符 xff0c 例如表名和字段名 xff0c 是否区分大小写 xff1b 字符型字段进行比较时 xff0c 是否区分大小写 第一个问题 与SQL SERVER数
  • tcpreplay,tcprewrite

    安装指南 tcpreplay官方提供的下载地址为 http tcpreplay synfin net trac wiki Download 由于tcpreplay依赖libpcap库 所以安装tcpreplay之前必须先安装libpcap
  • 本文详解5G是个什么鬼,程序员都准备好了吗?

    无线移动通讯发展历史 最近5G的概念炒的如火如荼 xff0c 为此 xff0c 华为和高通还干了一仗 这篇文章从技术层面给大家分析 xff0c 什么是5G xff0c 它和4G比 xff0c 高级在哪里 xff1f 我们来看看移动互联网的技
  • python 调用 shell 时 设置环境变量

    2019独角兽企业重金招聘Python工程师标准 gt gt gt python调用shell 不设置shell的环境变量时 xff0c 对于中文等特殊字符会处理失败 xff0c 这时需要设置环境变量 调用shell xff0c 这里使用
  • 常用的ROS命令

    在这里记一下 xff0c 以免以后忘记了 打开ros master xff1a roscore 查看topic列表 xff1a rostopic list v 打印topic内容 xff1a rostopic echo topic 将bag
  • Rational Rose正逆向工程(类图转Java代码,Java代码转类图)

    xfeff xfeff 一 xff0c 正向工程 1 设置默认语言为Java xff0c Tools gt Options gt Notation gt default xff1a 选择Java 2 设置环境变量ClassPath xff0
  • Linux 下编译安装OpenCV

    Cmake的安装 OpenCV 2 2以后版本需要使用Cmake生成makefile文件 xff0c 因此需要先安装cmake ubuntu下安装cmake比较简单 xff0c apt get install cmake 如果觉得自带的版本
  • Python模块整理(三):子进程模块subprocess

    本来收集整理网络上相关资料后整理 xff1a 从python2 4版本开始 可以用subprocess这个模块来产生子进程 并连接到子进程的标准输入 输出 错误中去 xff0c 还可以得到子进程的返回值 subprocess意在替代其他几个
  • access$000方法和JAVA内部类的反编译

    反编译了几个内部类 xff0c 看到有对外部类access 000 access 100 access 200等方法的调用代码 xff0c 但反编译外部类时 xff0c 却看不到这些代码 这涉及到JAVA编译器中对内部类的处理方式 为了让内
  • c语言中寄存器设置方法,C 编程之——寄存器赋值操作

    通过这段时间的工作和学习 xff0c 我感觉在嵌入式硬件编程中 xff0c 大多数情况下都是对相应硬件的功能寄存器进行设置和操作 一 寄存器的设置和操作特性 1 xff0c 一个寄存器的每个位有其不同的意义 xff0c 进行不同的设置会使硬