先看一下这类数据在STM32的库中是怎么定义的

经过这么整理,就可以总结出U对应C语言中的unsigned(无符号整数),后面的数字可以对应C语言的数据长度分类。VU对应C语言中的volatile.

下面重点介绍一下volatile

通过查阅资料,通俗讲volatile是一个关键字,用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最终值。
    来自百度百科的解释:https://baike.baidu.com/item/volatile/10606957
    volatile是一个类型修饰符(type specifier).volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。

即volatile 影响编译器编译的结果:
    volatile修饰的变量是说这变量可能会被意想不到地改变或者随时可能发生变化,这样要求编译器处理与volatile变量有关的运算时,不要进行编译优化,以免出错。

例如:
volatile int i=10;
int j = i;
...
int k = i;
volatile 告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取,因而编译器生成的可执行码会重新从i的地址读取数据放在k中。
而优化做法是,由于编译器发现两次从i读数据的代码之间的代码没有对i进行过操作,它会自动把上次读的数据放在k中。而不是重新从i里面读。这样以来,如果i是一个寄存器变量或者表示一个端口数据就容易出错,所以说volatile可以保证对特殊地址的稳定访问,不会出错。

原文链接:https://blog.csdn.net/xuw_xy/article/details/96284013
————————————————

STM32中VU和U的区别相关推荐

  1. stm32中UART和USART的区别

    UART,全称为universal asynchronous receiver and transmitter,即通用异步收/发器: USART,全称为universal synchronous as ...

  2. STM32中TIM_ClearFlag和TIM_ClearITPendingBit有什么区别

    STM32中TIM_ClearFlag和TIM_ClearITPendingBit有什么区别 /*** @brief Clears the TIMx's pending flags.* @param ...

  3. 再次理解STM32中的堆栈机制

    再次理解STM32中的堆栈机制 刚拿到STM32时,你只编写一个死循环 void main() { while(1); }BUILD://Program Size: Code=340 RO-data= ...

  4. STM32中GPIO_Mode--GPIO配置

    本篇由转载而来,有侵权请联系作者,谢谢. 原博客地址:https://blog.csdn.net/snow416/article/details/6540646 一.GPIO配置 (1)GPIO_Mo ...

  5. stm32中堆、栈、flash、ROM、RAM、bss段、data段、text段、Code、Ro-data、 ZI-data、RW-data简介

    1. 堆.栈.flash.ROM.RAM.bss段.data段.text段.Code.Ro-data ZI-data.RW-data的区别? 1.1 堆.栈简介 堆栈是指在stm32启动文件中定义的那 ...

  6. STM32和51单片机有什么区别

    在项目开发过程中,我们经常会遇到单片机选型的需要,所以我们往往会根据项目的功能需求选择合适的品牌和型号.常见的51单片机和STM32单片机也将是我们主要考虑的机型. STM32和51单片机参数区别 核 ...

  7. STM32中的串口通信的基础知识

    目录 串口通信基本原理 并行通信与串行通信 串行通信中单工,半双工和全双工的区别 按通信方式不同又可分为异步通信和同步通信 常见的串行通信接口 STM32中的5个串口引脚 STM32中USART的通信 ...

  8. STM32 中 SysTick时钟的配置

    SysTick_Config(SystemFrequency / 10)   函数的形参就是systick重装定时器的值. systck计数频率为每秒72000000次,所以7200000次就是1/1 ...

  9. 深入浅出地理解STM32中的定时器工作原理

    深入浅出地理解STM32中的定时器工作原理 一.如何实现延时 1 纯硬件电路 2 纯软件编程 3 可编程定时/计数器 二.可编程定时/计数器有哪些功能? 三.STM32F103 的定时器有哪些 1 基 ...

最新文章

  1. python timber_如何使用Timber更有效地记录日志
  2. 函数计算的是什么_【Excel函数教程】3个例子让你彻底玩转EDATE函数
  3. 教育学专硕考试科目计算机,2017考研:哪些专业的考试科目相同?
  4. CentOS LAMP一键安装网站环境及添加域名
  5. 1071. Speech Patterns (25)
  6. C++_系列自学课程_第_12_课_结构体
  7. 【Pytorch神经网络理论篇】 26 基于空间域的图卷积GCNs(ConvGNNs):定点域+谱域+图卷积的操作步骤
  8. 印度数据工厂驱动全球 AI 发展
  9. 【离散数学】极小全功能集
  10. php 编译 iconv错误,php编译错误:configure: error: Please reinstall the iconv library.
  11. 特斯拉被踢出致命车祸调查组:提前披露信息,涉嫌把责任推向车主
  12. 腾讯AI又搞出大动作:Robotics X机器人实验室成立,签Nature办新AI大会
  13. Nuvoton M0518 之 程序烧录备注
  14. Java各个版本区别
  15. android临时文件夹,【报Bug】安卓端,保存视频到相册成功,临时文件夹中有,但是相册中没有...
  16. 小乐乐与进制转换-c++(六进制转换函数)
  17. python hist直方图拟合曲线_详解用Python为直方图绘制拟合曲线的两种方法
  18. C语言,详解二进制位运算
  19. 南京印象之出租车司机
  20. SAP 发票金额容差与供应商容差

热门文章

  1. Thread.sleep() 和 Thread.yield() 区别
  2. 80个小炒,令你炒菜不再烦恼!
  3. 使用贝叶斯优化工具实践XGBoost回归模型调参
  4. 【电子电路】上拉电阻与下拉电阻的作用
  5. 盛邀相聚贵阳,共赴“计算”之约,CNCC2022新闻发布会举行
  6. Eclipse 3 6 M7 太阳神版 发布
  7. 阿里巴巴“相信小的伟大”:用普世情怀传播小力量
  8. 王者荣耀背后的实时大数据平台用了什么黑科技?
  9. SPI 测试程序sja1105
  10. 硬盘对拷/硬盘克隆/硬盘数据迁移工具