c语言里寄存器.1说明意思,C语言复习+寄存器地址名称映射

C语言复习+寄存器地址名称映射

一.参考资料探索者STM32F4开发板:

**《STM32F4开发指南-库函数版本》4.1小节C语言基础知识复习

4.6小节 MDK中寄存器地址名称映射**

STM32F4xx官方资料:

《STM32F4xx中文参考手册》-第7章通用IO

二.C语言复习位操作

day8-1.pngGPIOA->ODR|=1<<5;

TIMx->SR = (uint16_t)~TIM_FLAG;define宏定义关键词define是C语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方便。

常见的格式:

#define 标识符 字符串

“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。

例如:

#define SYSCLK_FREQ_72MHz 72000000

定义标识符SYSCLK_FREQ_72MHz的值为72000000。ifdef条件编译

单片机程序开发过程中,经常会遇到一种情况,当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。条件编译命令最常见的形式为:#ifdef 标识符

程序段1

#else

程序段2

#endif

例如:#ifdef STM32F10X_HD

大容量芯片需要的一些变量定义

#endextern变量申明C语言中extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。

这里面要注意,对于extern申明变量可以多次,但定义只有一次。

main.c文件:u8 id;//定义只允许一次

main()

{

id=1;

printf("d%",id);//id=1

test();

printf("d%",id);//id=2

}

test.c文件:extern u8 id;

void test(void){

id=2;

}typedef类型别名

定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。typedef unsigned char uint8_t;

typedef unsigned short int uint16_t;

typedef unsigned int uint32_t;

typedef unsigned __int64 uint64_t;结构体Struct 结构体名{

成员列表1;

成员变量2;

}变量名列表;

在结构体申明的时候可以定义变量,也可以申明之后定义,方法是:

Struct 结构体名字 结构体变量列表 ;结构体作用:同一个类型可以用数组,不同类型可以用结构体组织。

结构体可扩展性强。

举例说明:void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)static关键字Static申明的局部变量,存储在静态存储区。

它在函数调用结束之后,不会被释放。它的值会一直保留下来。

所以可以说static申明的局部变量,具有记忆功能。

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

1.51中映射方法:sfr P0 =0x80;//P0映射到地址0x80

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

2.STM32中操作:GPIOA->ODR=0x00000000;值0x00000000是怎么赋值给了GPIOA的ODR寄存器地址的呢?

也就是说GPIOA->ODR这种写法,是怎么与GPIOA的ODR寄存器地址映射起来的?

day8-2.png

day8-3.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android--多线程,android多线程

线程的基本用法&#xff1a;android多线程编程其实并不比java多线程特殊&#xff0c;基本都是使用相同的语法&#xff0c;比如说&#xff0c;定义一个线程只需要新建一个类继承自Thread&#xff0c;然后重写父类的run()方法&#xff0c;并在里面编写耗时的逻辑即可&#xff0c;…

android的ui怎么做到流畅,android提高UI的流畅度

android提高UI的流畅度Android中所有的界面绘制工作都是在UI线程中进行的&#xff0c;提高UI流畅度的最核心根本在于释放UI线程。即:不在主线程中做耗时的操作。很多人都知道&#xff0c;耗时的操作要放到子线程中去做&#xff0c;比如访问网络&#xff0c;比如读写sd卡。像这类…

android商品数量加减,微信小程序实现一个简单的商品数量加减案例

简介这是一个用微信小程序原生代码实现的数量加减demo&#xff0c;主要是用于商品购物车或者商品详情修改数量使用&#xff0c;很简单哦~~~。核心js方法说明addCount(增加数量)delCount (减少数量)getCount(获取数量)实现效果如下图所示&#xff1a;微信小程序实现一个简单的商…

android plugin 镜像,cordova-plugin-screen-orientation

标题说明屏幕方向设置屏幕方向AppVeyor Travis CI Cordova屏幕方向插件Cordova插件以通用方式为 iOS。安卓和 windows UWP设置/锁定屏幕方向。 这个插件基于屏幕定向 API&#xff0c;所以API是当前的规范。插件将以下内容添加到屏幕对象( window.screen ):// lock the device o…

JAVA WEB篇1——初识JAVAWEB

JAVA WEB篇1——初识JAVAWEB JavaWeb主要指使用Java语言进行动态Web资源开发技术的统称&#xff0c;是解决相关Web互联网领域的技术总和 1、Http协议 HTTP协议&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是由W3C&#xff08;万维网联盟…

JAVA WEB篇4——Filter、Listener

JAVA WEB篇4——Filter、Listener 1、Filter Filter本意为”过滤“的含义&#xff0c;是JavaWeb的三大组件之一&#xff0c;三大组件为&#xff1a;Servlet、Filter、 Listener过滤器是向 Web 应用程序的请求和响应处理添加功能的 Web 服务组件过滤器相当于浏览器与Web资源之…

Java SSM1——Maven

Java SSM1——Maven 1、下载 maven 官网&#xff1a;https://maven.apache.org/download.cgi maven 百度云&#xff1a;https://pan.baidu.com/s/18XKbJp7P5x_BkKyc0VF0tw提取码&#xff1a;4zr9 2、安装 解压到想安装的目录下 添加环境变量 添加MAVEN_HOME变量 MAVEN_HO…

2021年广西艺术高考成绩查询,2021年广西美术高考成绩查询网址:https://www.gxeea.cn/...

【导语】2021年广西美术高考成绩查询入口开通后&#xff0c;考生可登录广西教育考试院(https://www.gxeea.cn/)高考服务平台或点击下方链接进入广西美术考成绩查询系统。具体如下&#xff1a;2021年广西美术高考成绩查询入口开通后&#xff0c;考生可以通过黑龙江教育考试院(ht…

齐浩亮 计算机科学与技术,齐浩亮

齐浩亮&#xff0c;男&#xff0c;1972年2月出生&#xff0c;计算机科学与技术系副教授&#xff0c;工学博士。2007年5月获哈尔滨工业大学计算机应用技术专业博士学位。现任黑龙江工程学院计算机应用技术研究所所长&#xff0c;哈尔滨院士专家团成员&#xff0c;YOCSEF哈尔滨20…

Java SSM篇2——框架的基本认识

Java SSM篇2——框架的基本认识 1、什么是框架 框架就是一套规范&#xff0c;既然是规范&#xff0c;你使用这个框架就要遵守这个框架所规定的约束框架可以理解为半成品软件&#xff0c;框架做好以后&#xff0c;接下来在它基础上进行开发 2、为什么使用框架 框架为我们封装…

Java SSM篇3——Mybatis

Java SSM篇3——Mybatis 1、JDBC存在的问题 数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能sql 语句在代码中硬编码&#xff0c;造成代码不易维护&#xff0c;实际应用 sql 变化的可能较大&#xff0c;sql 变动需要改变java 代码查询操作时&#xff0c;需要手动将…

在职研究生计算机科学与技术考研考哪些科目,计算机在职研究生考试科目

计算机在职研究生以三种方式来报考&#xff0c;分别是同等学力申硕、中外合作办学硕士、非全日制研究生。三种报考方式考试科目不同&#xff0c;下面为大家具体介绍一下。一、同等学力申硕考试科目&#xff1a;该方式考试科目主要有两科&#xff1a;外国语和学科综合。外国语&a…

Java SSM4——Spring

Java SSM4——Spring Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器&#xff08;框架&#xff09; Spring的优势 方便解耦&#xff0c;简化开发 Spring就是一个容器&#xff0c;可以将所有对象创建和关系维护交给Spring管理 什么是耦合度&#xff1f;对象之间的关…

html文件怎么导出stl文件,3D建模软件导出STL文件的小技巧(一)

很多用户在提交3D模型文件的时候&#xff0c;常常有这样的困惑&#xff1a;什么是STL 格式文件&#xff0c;怎么获取STL 格式文件呢&#xff1f;STL 格式文件是在计算机图形应用系统中&#xff0c;用于表示三角形网格的一种文件格式。它也是3D打印机在执行3D打印程序时&#xf…

Java SSM篇5——SpringMVC

Java SSM篇5——SpringMVC 1、MVC模式 MVC是软件工程中的一种软件架构模式&#xff0c;它是一种分离业务逻辑与显示界面的开发思想 M&#xff08;model&#xff09;模型&#xff1a;处理业务逻辑&#xff0c;封装实体V&#xff08;view&#xff09; 视图&#xff1a;展示内容…

空中最亮的星用计算机弹数字,赤峰——夜空中最亮的星_数字展示在线

8月25日&#xff0c;赤峰新区夜景照明改造升级PPP项目在新区管委会签约&#xff0c;这标志着全国首个城市夜景照明PPP项目正式落地。一切都从这一张照片开始在一个晴朗的夜晚摄影师拍下这张夜景之后赤峰便美得一发不可收拾这就是赤峰全国首个PPP夜景照明工程。项目一期包括八家…

计算机仿真在电力领域的应用,仿真技术在电力系统中的应用实例

自20世纪80年代末至今&#xff0c;我国的仿真技术获得了极大的发展。在电力系统中&#xff0c;应用较多的培训仿真系统有电厂仿真、电网运行工况仿真和变电所仿真。一般说来&#xff0c;凡是需要有一个或一组熟练人员进行操作、控制、管理与决策的实际系统&#xff0c;都需要对…

JAVA分布式篇2——Zookeeper

JAVA分布式篇2——Zookeeper 1、简介 Zookeeper是一个开源的分布式&#xff08;多台服务器干一件事&#xff09;的&#xff0c;为分布式应用提供协调服务的 Apache项目 2、工作机制 Zookeeper从设计模式角度来理解&#xff1a;是一个基于观察者模式&#xff08;一个人干活&a…

JAVA分布式篇3——Dubbo

JAVA分布式篇3——Dubbo 1、架构演变 1.1、单应用架构 当网站流量很小时&#xff0c;只需要一个应用&#xff0c;将所有的功能部署到一起&#xff08;所有业务都放在一个tomcat 里&#xff09;&#xff0c;从而减少部署节点和成本用于简化 增删改查 工作量的数据访问框架 &a…

淮北市成人学计算机学校,安徽淮北市成人学电脑?

安徽淮北市成人学电脑&#xff1f;-"零基础"入学,签订就业协议,保证就业薪资,先就业后付款让你学习无忧就业无忧!成人学电脑 安徽成人学电脑 淮北市成人学电脑学电脑找高薪就业it专业就选择VR环境艺术创意设计师&#xff1a;专业优势&#xff0c;装饰行业需要人才时代…