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

【STM32】C语言复习以及底层寄存器映射

位操作

&运算

通过与一堆1111,来筛选想要的位并保留
通过与一堆0000,来将不想要的位置置0

110011011

111111000

|运算

通过或一堆1111,用来全置1
通过或一堆0000,来筛选想要的位

右移

2 >> 1:相当于2/2。

99 >> 1: 相当于 99/2 向下取整为49。

99 >> 2:相当于 99/pow(2,2)向下取整为24。

999 >> i:相当于999 / pow(2,i)。

整数 >> i:相当于将这个整数化为二进制整数,并去掉这个数的末尾的 i 位数字。

unsigned 无符号型,全是正数  001 >>1  为000

signed  带符号最高位为符号位

左移

2 << 1:相当于2*2。

99 << 1: 相当于 99*2 。

99 << 2:相当于 99*pow(2,2)。

999 << i:相当于999 * pow(2,i)。

整数 << i:相当于将这个整数化为二进制整数,并在这个数的末尾加上 i 个0。

~运算符

按位取反

十进制 1 的二进制表示为:

0000 0001

每位都取反为:

1111 1110

^异或运算 

相同为0,不同为1

define宏定义

ifdef条件编译

extern变量申明 

 

定义只允许一次,extern可以在其他文件多次

extern意思就是遇到此变量在其他模块去找定义

typedef类型别名

把类型定义成别名

Struct结构体

可以添加成员变量,增加扩展性

static申明的局部变量存储在静态存储区

不加static时,每次调用返回的flag都为1

加static,返回的flag会是1,2,3,4......

【每次调用会跳过static的定义,并且不会被局部释放】

MDK寄存器地址名称映射分析

51映射

sfr P0=0x80;//P0映射到地址0x80

P0=0x00//往寄存器地址0x80赋值0x00

 32映射

通过基地址偏移

外设基地址偏移得到APB2基地址,APB2偏移得到GPIOA基地址

地址强制转换为结构体指针类型,GPIOA作为结构体指针类型,指向这些地址*

结构体指针就是用来指向结构体类型变量的指针
强制转换是改变数据的类型
结构体指针强制转换就是将地址中的数据的结构体数据类型进行转换

 

//先定义4个结构体
typedef struct {
    int array[4];
}Struct_A;
typedef struct {
    int *ptr_b;
} Struct_B;
//不允许操作:
Struct_B b;
Struct_A a = (Struct_A)b;
//允许操作:
Struct_B *b;
Struct_A *a = (Struct_A *)b;


http://www.kler.cn/news/350755.html

相关文章:

  • 死锁(Deadlock)C#
  • git安装-Tortoise git 安装汉化教程
  • 【论文+源码】基于spring boot的垃圾分类网站
  • 【前端】实操tips集合
  • 基于springboot企业微信SCRM管理系统源码带本地搭建教程
  • AI智能监测系统:全面赋能燃气安全管理的智能化转型方案
  • 深度学习论文: T-Rex2: Towards Generic Object Detection via Text-Visual Prompt Synergy
  • 利用Python filestream实现文件流读
  • Python设计方差分析实验
  • 【AI绘画】Midjourney进阶:留白构图详解
  • Docker 安装 Oracle创建表空间并导入数据库
  • 初尝类型萃取--typename、模板偏特化、和traits之(一)typename
  • 【DBA Part03】国产Linux上Oracle RAC安装-升级-ADG-迁移
  • TEI text-embeddings-inference文本嵌入模型推理框架
  • 【MySQL】表的查询操作——SELECT
  • Redis 数据结构与操作详解:从基本命令到高效缓存策略mget-0707
  • C++之多继承
  • 开通微信小程序需要哪些资料?集师知识付费小程序
  • ROS2 “通信方式” 参数服务器
  • 数据挖掘示例分析
  • 一个检查OpenEuler版本的Python脚本的意义与实现
  • windows安装cuda与cudnn
  • 基于车辆轨迹时空数据的城市热点预测模型研究
  • AI工具推荐合集
  • 用html做跨平台应用程序——千丝冥缘应用——跨平台软件开发
  • 【Next.js 项目实战系列】03-查看 Issue