嵌入式中的位操作

发布者:北极星小鹏最新更新时间:2022-04-25 来源: eefocus关键字:嵌入式  位操作  位运算 手机看文章 扫描二维码
随时随地手机看文章

位运算:


| & ^ ~  <<  >>


嵌入式因为对内存管理及寄存器的原因,经常需要进行位操作:


1、判断一个字节中的某位是0还是1

思路1:


1)将字节的中的该位右移到最低位->得到变量a;


2)变量a与0x01进行与操作,如果结果为0x01,则该位为1,如果结果为0x00,则该位为0;


unsigned char  ch = 0x40;//0100 0000


a = ch>>6;


a =a&0x01;


if(a==1) 第6位为1;


小结:跟与1的操作经常用来判断位的值。


思路2:


if(a&1<该位为1;


else  ----->该位为0;


 


2、将字节中的第n位置1

公式:int num;


num = num | 1<

unsigned char  ch = 0x00;     //0000 0000

 

for(int i = 0;i<8;i++)

{

      ch = ch | (0x01<}

小结:采用或操作的方式,将字节的每一位都置1.


3、将字节中的第n位清0

公式:int num;


num = num & ~(1<

总结:


1)将一个字节a的某一位置1(假设是第2位)----->采用或操作(只有要置的位为1,其余位为0,0x02;)


a = a|0x02;------>a的第二位为1,其余为保持不变。


2)将一个字节a的某一位置0(假设是第3位)---->采用与操作(只有要置的位为0,其余位为1,~0x04;)


a = a&~0x04;-------->a的第三位为0,其余位保持不变。


综上:要想使字节的某些位保持不变,有两种方法:


与0进行或运算: *|0=*


与1进行与运算:*&1=*


看具体情况,使用哪种方法。

关键字:嵌入式  位操作  位运算 引用地址:嵌入式中的位操作

上一篇:串口通信的理解
下一篇:串口通信预备知识

推荐阅读最新更新时间:2024-11-09 09:09

嵌入式C语言是不是过时了?
C 编程语言无疑是计算机科学中最成功的编程语言之一。 C 最早出现在 1972 年左右,由贝尔实验室的Dennis Ritchie创建。在过去 20 年中,C 被TIOBE Programming Index 评为世界上最流行的两种编程语言之一(参见图 1)。它是嵌入式系统开发人员最流行的语言,用于近 80% 的嵌入式项目。经过近半个世纪的使用,嵌入式开发人员需要转向更现代的语言了吗?C语言要退休了吗? 图 1 – 过去 20 年编程语言指数排名,源自TIOBE 编程社区,其中C一直是排名前两位的语言之一。 出于几个原因,放弃C并转向更现代的编程语言的诱惑相对较高。首先,入门级工程师几乎没有 C 语言经验。如今的大学课程专
[嵌入式]
<font color='red'>嵌入式</font>C语言是不是过时了?
利用嵌入式系统与Internet相连接实现Web服务器的应用
嵌入式Internet是指电子设备通过嵌入式模块而非PC直接接入到Internet,与Internet进行信息交互的过程。目前Internet成为全球最大、信息最丰富的互联网络。用户甚至希望家电设备、仪器仪表以及工业生产中的数据采集与控制等设备也能够连接到Internet上,因为这意味着用户可以方便、快捷、低廉地通过网络进行远程控制、监测和信息传送。美国贝尔实验室的科学家预测,未来将会产生比PC时代多成百上千倍的超级嵌入式Internet服务器。Internet技术和嵌入式技术的相互融合,为嵌入式系统的设计和产品开发带来了前所未有的发展空间和机遇。 1 、单片机嵌入式Web应用的硬件系统设计 在硬件系统的设计中,本文采用了AT
[单片机]
利用<font color='red'>嵌入式</font>系统与Internet相连接实现Web服务器的应用
stm32相关操作
stm32 , ,l=与&=~操作 0x0000 0001 4//右移四位 =0x0000 1000 0x0000 1000 4//左移四位 =0x0000 0001 l=操作 0xxxx xxxx l= 0x0000 0001 =0xxxxx xxx1 //保留数据置1的位 &=~操作 0xxxxx xxxx &=~ 0x000 0001 =0xxxxx xxxx &=01111 1110 //先取反再相与 =0xxxxx xxx0 //使原来置1的位置0,也就是取反
[单片机]
未来十年工业需要什么样的嵌入式处理器
浩瀚的芯片海洋中能被人记住的寥寥无几,因其本就是幕后英雄,加之摩尔定律下技术的飞速发展。那些在人们脑海中留下印记的往往是踩中了时代的脉搏,得以彻底改变了人们的生活或是一个产业,而时代也造就了一些明星。 本文中,我们会探讨中国工业自动化产业的变革以及基于 ARM® 的高性价比处理器是如何推动这种演进的。 热血年代 如今我国已形成独立完整的现代工业体系,但在 2001 年中国加入 WTO,开启驶向“世界工厂”的高速通道时,没人能想象出今天中国“制造强国”的模样,因为那时作为工业生产的基石的我国的自动化产业尚处于萌芽期,外资占据绝对主导地位。只不过敏锐的本土企业已经开始尝试从点至面的突围,日后被誉
[嵌入式]
未来十年工业需要什么样的<font color='red'>嵌入式</font>处理器
芯科科技发布全球Works With开发者大会主题演讲方向
凸显嵌入式技术和物联网创新的未来 揭示物联网与AI人工智能的变革性融合 中国,北京 – 2024年8月19日 – 安全、智能无线连接技术领域的全球领导厂商Silicon Labs(亦称“芯科科技”)今日宣布,将于今年秋季举行的全球Works With开发者大会中极具影响力的主题演讲方向已全部确定,其富有前瞻性和洞察力的演讲将进一步确立该活动在物联网(IoT)无线创新领域的领先地位。 芯科科技在2024年Works With全球系列开发者大会上的主题演讲将专注在人工智能(AI)和物联网的变革性融合,及其对嵌入式系统的深远影响,特别在Works With上海站会将这种变革性融合针对中国市场的重要性进行探讨和分析。 “汇聚我们
[嵌入式]
STM32开发中的操作机制
为了像51单片机一样能够对某个管脚单独操作,引入了位带操作这样的操作机制。 如下图,位带(Bit band)区就是就是你想单独操作的IO的区域,比如PA1、PA2。而位带别名区就是你给每一位重新起了个名字的那一片地址区域。可以看下表,M3内核存储器映射表,你能看到1M内存的BitBand区,还有与之对应的32M内存的BitBand别名区,因为你将每一位膨胀成为了一个32位的地址,所以相应的别名区的内存也会是位带区的32倍。 想进行位带操作,应该先去找该位对应的别名区的地址,找到了这个地址,对这个地址进行操作,那么实际上也就是对该位进行操作了。 官方给出了如下相应的计算公式: AliasAddr=0x42000000+((A‐0
[单片机]
STM32开发中的<font color='red'>位</font>带<font color='red'>操作</font>机制
嵌入式开发(S5PV210)——ADC和触摸屏
1、ADC介绍 ADC(analog digital converter)就是AD转换,把模拟量转换为数字量。CPU本身是数字的、离散的,而外部世界却是模拟的、连续的,所以外界的信息是不能直接被计算机进行处理,需要先将模拟量转换为数字量。现在的CPU都是二进制的,数据用n位二进制来表示,但是现实生活中的时间、电压、高度等物理量都是连续分布的,在0到1之间就有无数个数,如果用数学来描述当前的物理量大小可能需要无限小数位,显然计算机是不可能用无限个二进制位来存储这个物理量,于是就有了量取的精度,用有限位的二进制来表示当前物理量,会损失掉一定的精度,不能百分百真实的表示,但是这点偏差是可以接受的。而ADC就是将当前现实中的物理量,根据精
[单片机]
<font color='red'>嵌入式</font>开发(S5PV210)——ADC和触摸屏
嵌入式人工智能/机器学习(AI/ML)以“生态+集成+定制”差异化发展
随着嵌入式处理器的能力不断提升,超小型化的硬件加速器不断被引入,以及原厂及商业的开发环境和工具不断出现, 嵌入式人工智能/机器学习(AI/ML)技术 在近几年得到了快速的发展。同时因为这些技术与千姿百态的各种应用需求十分贴近,因此正在进入差异化发展的新空间,未来其增长速度将可以比肩甚至超过需要强大资源体系的、立足良好通信条件的和基于云的人工智能应用。 人工智能并不是一个近几年才提出的名词,但是在近几年随着谷歌AlphaGo战胜人类围棋世界冠军等事件的推动,才使诸如卷积神经网络、深度学习和机器学习等技术走进了大众的视野,同时也使“人工智能=数据+算法+算力”的模型得到广泛的认同。 其结果是,在很多人的印象中,人工智能和机器学
[嵌入式]

推荐帖子

人说做模拟要5年才算入行?
你觉得呢?个人感觉5年都不算久。人说做模拟要5年才算入行?本科根本没机会做研发研究生毕业25周岁,五年30岁技术上刚入门,待遇上也是这个说法偶觉得娶媳妇生孩子么希望鸟偶觉得面试NI的硬件被别人鄙视了Aglient和Fluke都是没有招,偶当时觉得做模拟入地无门啊,偶就投身汽车电子鸟08年的时候原帖由yulzhu于2010-3-310:18发表本科根本没机会做研发研究生毕业25周岁,五年30岁技术上刚入门,待遇上也是这个说法偶觉得娶媳妇生孩子么希望鸟
幸福的娃 模拟电子
EZ-USB FX系列外围电路设计
全书下载需要把所有部分都下完(part1--part8)EZ-USBFX系列外围电路设计谢谢分享:)感谢楼主
追梦1988 工控电子
AD设计输入接口
请问图中这个金黄色的接口叫什么,这是采集的模拟信号,能知道是单端输入还是差分输入吗?差分输入的接口叫什么?还有这个电路板右上角留这么多焊盘孔有什么其它用处吗?AD设计输入接口图片没有发上来。单端输入还是差分输入,看看有几个输入信号线。只有一根的话,那就应该是单端输入。差分输入的话,pcb走线方式上是平行的。另外,测量输入信号和芯片的哪些脚对应。结合芯片手册,看看能不能获取一些信息。图片之前没传上去射频绝缘子
萤火 ADI参考电路
函数sigpending的问题
我买了《UNIX环境高级编程》,正在看。看到第10章,函数sigpending。书里有个程序,如图:运行:这是正常情况。函数sigpending的问题然后,我把程序改成如下所示:也就是把函数sigpending屏蔽掉,结果运行效果不变,如下图:我感觉sigpending就没什么明显的作用。然后我把程序又改成如下所示:就是把sigismember函数里的SIGQUIT参数改成SIGALRM.运行:可以看到:SIGQUITpending时而出现,时而不出现。
chenbingjy Linux与安卓
电流采样
我的论文题目是灯泡验光控制器设计,就是测量灯泡的电流来判断灯泡的好坏,电流大小10A左右工作电压12V,想用电流传感器MAX472来采集电流信号,通过ADC0809显示出来,问题是不知道MAX472跟0809怎么相连,以及采集电流的电路怎么画,请教。。最好有跟下面的温度才样一样的连线图电流采样你的灯泡是直流还是交流你的灯泡是直流还是交流汽车前照灯的灯泡电压是12V直流的Re:电流采样你的现在还在吗?我的论文也是这个题目不会啊求助
shy117301 单片机
嘉楠K230 AI开发板测评2--GPIO、LED、按键、定时器
GPIO介绍 K230开发板总共引出了46个引脚,有常见的通用GPIO口、4路PWM、2路串口、1路SPI、I2C、I2S和4路的ADC,提供5V和3.3V的电源输出引脚对外供电,用常见的type-c引脚对开发板供电,方便简洁,GPIO引脚图如图1所示。 图1K230GPIO引脚图 点亮第一个LED CanMVK230有一个与GPIO直接连接的可控制LED蓝灯,其连接到GPIO52,其原理图如图2所示,从电路图可
dfjs 国产芯片交流
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved