STM32中遇到的一些关键字
3、在STM32编程中遇到的一些关键字
STM32是基于RAM的架构,学习它可以是嵌入式的一个基础部分。因此对于一些关键字也必须了解,在STM32学习过程中,遇到过如下变量,对其有疑问
| 关键字 | 功能 |
|---|---|
| vu32 | 返回最新的无符号整型写入值 |
1、vu32
通过在编译器中不断的追踪,最终找到vu32关键字的定义处,其应用了宏定义,完整的定义便是
#define vu32 volatile unsigned int
也就是vu32表示的是volatile unsigned int类型的数据,举个栗子
vu32 length;等价于volatile unsigned int length;我们需要知道一些关键字的原理,最主要的是关键字volatile:
被volatile关键字修饰的变量,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其内存操作一起重排序,volatile变量不会被缓存在寄存器或其他处理器不可见的地方,因此在读取volatile类型的变量时总会返回最新写入的值
最后对于volatile用的多的地方还是嵌入式,关于这些内容,找到了一些可供参考的资料,可点击下方的嵌入式C语言中的volatile关键字查看。
STM32中遇到的一些关键字的更多相关文章
- stm32中字节对齐问题(__align(n),__packed用法)
ARM下的对齐处理 from DUI0067D_ADS1_2_CompLib 3.13 type qulifiers 有部分摘自ARM编译器文档对齐部分 对齐的使用: 1.__align(n ...
- [转载]C#中as和is关键字的用法
这篇文章主要介绍了C#中as和is关键字的用法的相关资料,需要的朋友可以参考下. 原文链接:http://www.jb51.net/article/80944.htm#comments 在程序中,进 ...
- Java中的两个关键字——super、this
Java中的两个关键字——super.this 神话丿小王子的博客主页 一.super super 是java中方的一个关键字,用它可以引用父类中的成员: super可用于访问父类中定义的属性 sup ...
- 一个在字符串中查找多个关键字的函数strstrs(三种不同算法实现及效率分析)
平时项目中有时需要用到在字符串中搜索两个或更多的关键字的情景.例如:将字符串"ab|cd#ef|"按竖线或者井号做分隔 如果是大项目,一般会采用正则表达式做处理.但有时写个小程序, ...
- 【每周一译】愚蠢的指标:Java中使用最多的关键字
此翻译纯属个人爱好,由于水平所限,翻译质量可能较低.网络上可能存在其它翻译版本,原文地址:http://blog.jooq.org/2013/08/26/silly-metrics-the-most- ...
- STM32中的位带(bit-band)操作(转)
源:STM32中的位带(bit-band)操作 支持了位带操作后,可以使用普通的加载/存储指令来对单一的比特进行读写.在 CM3 中,有两个区中实现了位带.其中一个是 SRAM 区的最低 1MB 范围 ...
- Java中的50个关键字
form:http://blog.csdn.net/luoweifu/article/details/6776240 Java中的50个关键字 关键字也称为保留字,是指java语言中规定了特定含义的标 ...
- STM32中GPIO的8种工作模式
一.推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止.高低电平由IC的电源决定.形象点解释:推挽,就是有推有拉,任何 ...
- 7.STM32中GPIO理解
端口概述 在STM32中,每个I/O端口可以由软件配置成为输入/输出模式.复位期间或刚复位后,I/O端口被配置成浮空输入模式.所有的GPIO引脚有一个内部弱上拉和弱下拉,当配置为输入时, 它们可以被激 ...
- 数据库中in和exists关键字的区别
数据库中in和exists关键字的区别 in 是把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询. 一直以来认为exists比in效率高的说法是不准确的 ...
随机推荐
- Git Commit Rule
## git commit tagfeat: 新功能fix: 修复问题docs: 修改文档style: 修改代码格式,不影响代码逻辑refactor: 重构代码,理论上不影响现有功能perf: 提升性 ...
- C语言源文件如何编译为exe
先观看https://blog.csdn.net/u014772182/article/details/43348465来配置gcc环境随后在cmd中cd到目标文件夹gcc main.c -o ste ...
- Linux 第七节(LVM,网卡配置)
LVM 逻辑卷管理器: 解决分区灵活调整大小问题 PV 物理卷 VG 卷组 LV 逻辑卷 pvcreate /dev/sdc vgcreate xiaochong /dev/sdb /dev/sdc ...
- 大数据开源平台CDH 集群(CM6.3.1 + CDH 6.3.2)的部署
一,概述 我依照博文:https://www.cnblogs.com/liugp/p/16286645.html ,进行了CDH集群的部署.总体来说,基本比较顺利. 在部署过程中,发生了一些小问题.本 ...
- hive中时间-日期函数的用法
current_date:获取当前日期 用法:select current_date: 输出:2020-12-04 unix_timestamp:获取当前unix时间戳 用法:select unix_ ...
- 》》》Win10配置Jdk环境变量
转载:Win10如何配置Jdk环境变量 (baidu.com) 对于每一位做Java开发的朋友来说,Jdk是必须要安装的,安装好了Jdk,其实并没有结束,还需要配置Jdk的环境变量,系统在不断地更新, ...
- uml类图中的+,-,#符号的含义
描述类的属性的可见性: UML中,可见性分为4级 1.public 公用的 :用+ 前缀表示 ,该属性对所有类可见 2.protected 受保护的:用 # 前缀表示,对该类的子孙可见 3.priva ...
- ES6-新增方法
一.字符串的新增方法 1.includes方法(实例的方法): 应用: 代码优化: (1)先使用includes方法判断是url中否包含? (2)如果包含?, 再判断url最后一位字符是不是?或&am ...
- Python-celery介绍与快速上手
1.celery介绍: celery是一个基于Python开发的模块,可以帮助我们在开发过程中,对任务进行分发和处理. 详细介绍取自:Python之celery的简介与 ...
- Rust字符串处理
Trim移除字符串开始末尾的字符串 fn main() { let s = " Hello Rust! "; // trim移除字符串开始末尾的空格 // "Hello ...