对寄存器操作的通用方法总结

转载 2016年08月30日 09:51:47

    接触了一阵子的STM32函数库,使用起来挺方便的,但是很少有处理器会有函数库,大部分情况下还是要自己来对寄存器进行操作,所以还是不要生疏了对寄存器的操作。

    对寄存器的操作有时候要考虑对其不同的位进行先后顺序不同的设置,因为这样可能达不到预期的效果,这个不太好总结,但是对寄存器操作的方法是固定的。

    在这之前,首先要明白逻辑运算符(! && ||)和位运算符(<< >> ~ | ^ &)的区别,对寄存器的操作使用的是位运算符,逻辑运算符一般用于在程序中判断逻辑中使用。

 

例如 定义一个8位的寄存器(0xf0是寄存器的地址):

#define   REG     0xFF

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) );

 

   该段总结如下:

                将某位置1,移位取反后使用位运算"|"

                将某位置0,移位取反后,使用位运算"&"

             

 

2)直接赋值

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

          REG 0x5E;

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

 

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

u8 temp;

tmep REG;               

temp &= ~0x01;      //等价于 temp &= ~(1<<0)  将第0位清零       

temp |= (1 << 1); 

temp &= ~(1 << 2);

temp |= (1 << 3);

temp |= (1 << 5);

temp |= (1 << 7);

REG temp;





rGPHCON &= ~((3 << 4) | (3 << 6)) ;//GPH2-GPH3是RX/TX
rGPHCON |= ((2 << 4) | (2 << 6)) ;//GPH2--TXD[0];GPH3--RXD[0]


rGPHUP = 0x00 ;

rULCON0 |= 0x03 ;     //8位数据,1位停止位
rUCON0 = 0x05 ;      

举报

相关文章推荐

寄存器操作方法

一, 寄存器的设置和操作特性 1,一个寄存器的每个位有其不同的意义,进行不同的设置会使硬件产生不同的效果和功能; 2,有些情况下需要对一个寄存器进行连续的不同的甚至完全相反的设置; 3,有些情况...

寄存器操作

1.#define方法 1 寄存器地址的定义:     #define UART_BASE_ADRS (0x10000000)     /* 串口的基地址 */     #def...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

X86汇编 通用寄存器总结

学习X86汇编有一段时间了,是时候总结一波了 X86汇编  通用寄存器总结    一、通用寄存器的名字  见下图 eax ,ebx,ecx,edx,esp,ebp,esi,sdi 二、虽然名字...

寄存器总结

通用寄存器的主要用途 寄存器的分类 寄存器 主 要 用 途 通 用 寄 存 器 数据   寄存器 ...

stm32 BKP寄存器操作[操作寄存器+库函数]

stm32 BKP寄存器操作[操作寄存器+库函数] 作者:Changing发表时间:07-06 17:13分类:电子相关No Comments 前一篇:stm32 低功耗设计[操作寄存器+...

通用寄存器的作用

通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。除此之外,它们还各自具有一些特殊功能。汇编语言程序员必须熟悉每个寄存器的一般用途和特殊用途,只有这样,才能在程序中做到正确、合理地...

通用寄存器 段寄存器

通用寄存器8 个通用寄存器是 8086 寄存器的超集,它们的名称和用途分别为:EAX 一般用作累加器EBX 一般用作基址寄存器( Base )ECX 一般用来计数( Count )EDX 一般用来存放...

寄存器(通用寄存器)

因为学习使用的是王爽的《汇编语言(第3版)》,因此也只能提到8086CPO的寄存器。对于其他而言,原理都是相通的。 对于8086寄存器,有14个寄存器,主要是:AX、BX、CX、DX、SI、DI、SP...

通用寄存器

通用寄存器 目录 简介 主要用途 相关信息 编辑本段简介    通用寄存器   通用寄存器可用于传送和暂存数据,也可参与...

通用寄存器

本学习过程参考滴水逆向第三期视频 32位通用计算器 工具DTDebug先了解两个硬件 CPU CPU里提供的32位的容器又叫32位通用寄存器 特点:计算速度最快 确定:提供的容器有限,成本昂贵...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)