STM32的意思是啥呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32的意思是啥呢?相关的知识,希望对你有一定的参考价值。

STM32的意思是什么呢?

一、STM32简介

STM32F103器件采用Cortex-M3内核,CPU最高速度达72 MHz。该产品系列具有16KB ~ 1MB Flash、多种控制外设、USB全速接口和CAN。

ST在后续几年陆续推出了Cortex-M0+、Cortex-M4内核的芯片,并进行不断优化。

按内核架构分为不同产品,其中STM32F1系列有:

基本型:STM32F101R6、STM32F101C8、STM32F101R8、STM32F101V8、STM32F101RB、STM32F101VB

增强型:STM32F103C8、STM32F103R8、STM32F103V8、STM32F103RB、STM32F103VB、 STM32F103VE、STM32F103ZE

互联型:STM32F105、STM32F107


二、STM32学习

学STM32嵌入式,从硬件上讲,一方面就是学习接口电路设计,另一方面就是学习汇编和C语言的板级编程。如果从软件上讲,就是要学习基于ARM处理器的操作系统层面的驱动、移植了。硬件的寄存器类的东西还是要能看懂的,掌握基于板级的汇编和C编程。

主要需要学习的有:

基础操作:GPIO操作,串口操作,定时器操作,NVIC和中断,看门狗,DMA操作,ADC操作,SPI接口通信,IIC接口通信,CAN总线通信等。

进阶操作:低功耗操作,STM32时钟树,STM32实现位带特性,STM32启动过程详细分析,环形缓冲期的实现,软件定时器的设计,IO口模拟IIC的实现。

综合应用:STM32-IAP的实现,STM32-DAPLink的实现。

带操作系统的程序学习与开发:可用操作系统分析,rt-thread系统移植与学习,FreeRTOS移植与学习。

参考技术A STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M3内核。按性能分成两个不同的系列:STM32F103“增强型”系列和STM32F101“基本型”系列。具体的可以去创客学院询问一下。本回答被提问者采纳 参考技术B 意思是如果在你的程序中,某些外设用的是复用io口,就必须开该复用时钟。
比如在stm32f103vet6中usart3的io口为(tx/pb10,rx/pb11)。但是如果你要是将给外设io口映射到(tx/pc10,rx/pc11)或者(tx/pd8,rx/pd9),那就必须开启afio时钟了,否则外设不会正常工作。

STM32示例中变量名开头的“uw”是啥意思?

【中文标题】STM32示例中变量名开头的“uw”是啥意思?【英文标题】:What does the "uw" mean at the beginning of variable names in STM32 examples?STM32示例中变量名开头的“uw”是什么意思? 【发布时间】:2018-10-08 20:53:05 【问题描述】:

在阅读 STM32 示例代码时,我看到大量以 uw 开头的变量。例如:

static __IO uint32_t uwLsiFreq = 0;
__IO uint32_t uwCaptureNumber = 0;
__IO uint32_t uwPeriodValue = 0;
__IO uint32_t uwMeasurementDone = 0;

每件事背后都有一个意义或一个故事。 uw 在这里是什么意思?

示例来源:STM32Cube_FW_F2_V1.7.0/Projects/STM32F207ZG-Nucleo/Examples/IWDG/IWDG_Example/Src/main.c.Download link --> 点击“STM32CubeF2”旁边的“获取软件”按钮。

【问题讨论】:

可能:“uw”代表某种Hungarian notation中的“无符号字” 【参考方案1】:

好的,我想发布我自己的更完整的答案。感谢@njuffa 在我的问题下方的评论中指出“可能:uw 代表某种Hungarian notation 中的'无符号字'”,感谢@PeterJ_01 的pointing out Stack Overflow 的首席执行官拥有关于此事的一些意见,并感谢@Sigve Kolbeinson 在 PeterJ_01 的回答下的评论中指出 Stack Overflow 的 CEO 的名字是 Joel Spolsky(如链接中所示),他实际上并不讨厌匈牙利符号,而是只是破坏了它的有限和损坏形式 [Systems Hungarian] 获得了一段时间的关注,并为我们提供了实际的link to the article,因此我们可以了解更多信息并自己阅读文章。

1。这是我回答我的问题的结论:

uw 在许多 STM32 示例变量的开头肯定必须在逻辑上表示“无符号字”,在这种情况下,“字”是 32 位。当我阅读代码时,知道这一点会增加很多清晰度,并消除对名称的一些混淆,所以我很高兴知道这一点。

在这种情况下,这是 Systems Hungarian 用法的一种类型,对于具有显式类型的语言(例如 C 和 C++)通常不鼓励使用,因为它是多余的并且几乎没有增加价值。将此与我在下面描述的 Apps Hungarian 进行对比,Joel Spolsky(Stack Overflow 的首席执行官)strongly promotes 是一种帮助“错误代码看起来错误”的方法。

2。以下是我通过他们的 cmets 和他们提供的链接从 @Sigve 和 @njuffa 那里学到的一些额外见解(主要是关于匈牙利符号):

您可以将本节称为“计算机编程中的匈牙利符号到底是什么?”

    Hungarian notation 存在(我之前不知道),是指在每个变量和/或函数名称的开头添加一些额外字符的概念,以提供有关变量或函数的附加信息,例如它的用途,它的类型,或者它的返回类型。 无意中这也回答了我关于 FreeRTOS 命名约定的问题。现在我明白了!他们也使用[主要是系统]匈牙利符号。这里有一些链接。请注意,在第一个链接中,您将看到 FreeRTOS 中所有匈牙利符号用法的列表。这种表示法几乎完全是 Systems Hungarian 表示法,但可以说在指定 文件名 时也使用了一点 Apps Hungarian 表示法,其中在函数或宏名称中定义了函数和宏。 FreeRTOS Hungarian Notation what is v and x means in freeRTOS task creating or used in it? https://www.freertos.org/FreeRTOS-Coding-Standard-and-Style-Guide.html#NamingConventions 匈牙利符号有两种主要形式:Systems HungarianApps Hungarian。查看他们的差异here。 Systems Hungarian 本质上是对“匈牙利”符号的原始意图的破坏,该符号的创建者 Charles Simonyi 在他的描述中错误地使用了“类型”一词而不是“种类”( source)。 Charle 的初衷是将附加信息编码为编程语言本身不固有的变量名。但是,Systems Hungarian 表示法基本上表示将变量的 type 存储到变量名中。例如:unsigned long myVar 现在变为 unsigned long ulMyVar。大多数人似乎认为这是有限的使用或完全没有价值。 Joel Spolksy 不支持这种形式的匈牙利符号as indicated in his article,但他支持 Apps Hungarian 风格。其他意见可以在"Notable opinions" section of the Wikipedia article here中找到。 Apps Hungarian 描述了将附加信息存储到变量名称前面的概念,否则很难推断出这些信息,例如使用 us 表示“unsafe string”和s 表示“安全string”。许多人要么对这种方法感到更中立,要么喜欢并推广它。 Joel Spolsky(Stack Overflow 的首席执行官)和 Steve McConnel 都认为这是一个好主意并推广它的使用。

注意,这是来自Joel's article 的有用摘录:

有人在某处读过 Simonyi 的论文,他在其中使用了“类型”一词,并认为他的意思是类型,就像类,就像在类型系统中一样,就像编译器所做的类型检查一样。他没有。他非常仔细地解释了“类型”这个词的确切含义,但没有帮助。伤害已经造成。

Apps Hungarian非常有用且有意义的前缀,例如“ix”表示数组的索引,“c”表示计数,“d”表示两个数字之间的差异(例如“dx”表示“宽度”),等等。

Systems Hungarian用处不大的前缀,例如“l”代表 long,“ul”代表“unsigned long”,“dw”代表双字,也就是说,实际上,呃,一个无符号长。在 Systems Hungarian 中,前缀告诉您的唯一信息是变量的实际数据类型。

这是对西蒙尼的意图和做法的微妙但完全的误解......

(强调)

【讨论】:

【参考方案2】:

在此命名约定中表示无符号单词。现在几乎不用了。但是有些人喜欢它,因为它向他们展示了变量的类型。其他人讨厌争论这是最糟糕的编程习惯之一(包括 Stack Overflow 的创建者)。 海事组织没关系

【讨论】:

可能值得一提的是,不喜欢通常仅限于将变量名称中的变量类型编码为编码约定,但类型系统未捕获的编码信息被视为更有用(特别是如果经过深思熟虑),详见此处:joelonsoftware.com/2005/05/11/making-wrong-code-look-wrong 您的链接是我在回答中提到的 SO 创建者的意见。 IMO 很麻烦,通常问题来自其他地方。如果编码人员知道他在做什么并且选择的命名约定对他来说更容易,我没有任何反对意见。我反对其中的任何***。 (顺便说一句,许多理论***分子在现实生活中都是可怕的程序员)

以上是关于STM32的意思是啥呢?的主要内容,如果未能解决你的问题,请参考以下文章

stm32单片机有adc是啥意思?

stm32晶振8m是啥意思

stm32的AFIO是啥意思

stm32的nvic是啥意思

"stm32的AFIO"是啥意思?

STM32中,外部晶体振荡器被旁路是啥意思?这里的旁路怎么理解?