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

c语言学习8位运算

1位运算

1.1位运算符:

对某个位进行操作

符号:

①按位与 :

&    数据1 & 数据2

将数据AB转换为二进制,按位与,对应位有0则0全1为1

用于将数据中某一位操作,其他位不变如将0xef其中第x位为0

:0不能移动,可以将对应位为一然后取反~(0xef|(0x01<<x))

A&=~(1<<X)

A&=~(3<<X)//011 ,多位清零

②按位或 :

|   数据1 | 数据2

将数据AB转换为二进制,按位与,对应位有1则1全0为0

将x位置1:0xef&(0x01<<x);

A|=(1<<X)

③ 按位取反 :

~  每一位0变1,1变0

④似按位异或 :

^   数据1 | 数据2,异时取或(不同时为1)

⑤按位左移 :

<<  数据<<左移位数  按位左移低位补0

结果取决于赋值给什么变量(运算过程中的自动转换),从低到高截位

(没有高位溢出)

  U8 a;

  a<<=2;//此时a与2整型发生运算,自动向上转换 空间变为int

规则:整体左移,低位补零。

数据二进制左移1位(10倍)十进制形式扩大2倍数

⑥按位右移:

>> 数据>>右移位数 按位右移动高位补0。

⑦位运算符优先级:

~

<<  >>

& ^ |

2位运算的综合应用

对数据操作

2.1数据合成

①把两个8位数据合成一个16位数据

  1. B,合成C

   U8 a;

  U16 b;

  U32 c;

C=A<<16|B;

C=B<<8|A;

2.2截取数据

截取一个数据的高字节部分

   u16 a=0xffee;

   U8 b=a>>8;//(挤出低字节)

截取一个数据中间字节

  ①右移挤出低字节

②定义一个适当变量收取对应字节

3位运算操作寄存器控制led灯

需求控制led灯亮灭

GPIO

分析:

3.1说明1:

LED连接在某个GPIO口上

要使用GPIO口初始化配置IO口

配置某个IO口,实际是配置寄存器对应位

寄存器相当于一个32位的变量

配置寄存器的某个位实际上相当于对变量的某个位操作

3.2说明2:

STM32GPIO口分组,具体分几组根据芯片型号决定

每组编号0~15即16个IO口

组编号形式:GPIOA  GPIOB......

3.3说明3

首先要知道具体要配置那个IO口

具体这个IO口的配置过程

3.4配置过程:

确定IO口:查看原理图

具体配置:

打开芯片中文参考手册

MODE模式寄存器:输入00 输出01 服用10 模拟11

GPIOC->MODE=GPIOC->MODE&~(3<<8)//(结构体指针)

GPIOC->MODE=GPIOC->MODE|(1<<8)

OTYPER输出类型寄存器GPIOC->OTYPER  //五号位写0,配置推挽输出

OSPEEDR输出速度寄存器       00 2mhz 01 25mhz 01 50mhz 11尽量不写

ODR端口输出数据寄存器  1输出高电平0输出低电平。reserved(保留)

时钟使能:查看数据手册,查找挂载的位置

AHB.....

RCC->AHB1ENR=RCC->AHB1ENR|(1<<2)

C第2位,1使能.


http://www.kler.cn/a/386018.html

相关文章:

  • STM32+AI语音识别智能家居系统
  • CSS回顾-基础知识详解
  • 如何处理 iOS 客户端内 Webview H5 中后台播放的音视频问题
  • R语言贝叶斯分析:INLA 、MCMC混合模型、生存分析肿瘤临床试验、间歇泉喷发时间数据应用|附数据代码...
  • LeetCode654.最大二叉树
  • YOLO系列基础(七)从数据增强到图像线性变换
  • 代码随想录第十六天| 513.找树左下角的值 、112. 路径总和 、113. 路径总和 II、106、从中序与后序遍历序列构造二叉树
  • Rust性能优化与调试第二节:调试与错误处理的实用工具
  • 软件测试(系统测试)的定位和专业:完善产品;专业;非助手;自动化
  • FPGA图像处理.从认识噪声到去噪算法
  • 【服务器】使用命令行文本编辑器(如 vim、nano 或 vi)创建文件并编辑
  • JAVA设计模式之【建造者模式】
  • Java基于小程序公考学习平台的设计与实现(附源码,文档)
  • 大数据学习09之Hive基础
  • Beyond Compare 5 比较文本文件时,如何忽略字母的大小写差异?
  • docker入门(一)
  • unity显示获取 年月日周几【日期】
  • 关于Django 模型字段 `choices`自定义数据类型的枚举——补充
  • Java SPI——针对实习面试
  • 汽车和飞机研制过程中“骡车”和“铁鸟”
  • EL表达式和JSTL表达式(详解)
  • 【java】实战-力扣题库:移动零
  • Dubbo框架浅谈
  • 数字IC后端设计实现之Innovus自动修复Min Step DRC Violation方案
  • Agent指令编排
  • 双指针算法的妙用:提高代码效率的秘密(1)