您的位置 首页 动态

STM32学习笔记 之序言

学习STM32也有些日子了。作为初学者,从最初的一无所知,到现在略知皮毛之皮毛,感觉着实不容易。下面把自己的体会以及自认为初学者不易掌

学习STM32也有些日子了。作为初学者,从开始的一窍不通,到现在略知皮裘之皮裘,感觉着实不简单。

下面把自己的领会以及自认为初学者不易把握的关键和咱们共享一下,有过错的当地,欢迎咱们纠正。

一、关于学习办法

初学STM32给我的一个感觉便是,概念繁复并且许多都能够持续深究下去,教程对此又不或许都很具体的论说,但于我来说如鱼鲠喉真实不爽。

由于我喜爱寻根究底,网络材料又真实冗杂,如此又消耗精力,又冲击学习积极性。

总算有一天,我转变了心态,假如STM32犹如枝繁叶茂的大树(整个嵌入式体系亦如此),我要做的不是连每一个叶子都明晰,而是暂时只需知晓其骨干及一些必要的干支即可。其他的枝叶等有时间再去深究,而许多头绪跟着学习的深化也会逐步明晰起来。

所以许多当地需求囫囵吞枣,只需知道个概念即可,这些并不会影响自己的编程设计。信任假以时日,跟着经历的丰厚,涉猎的广泛,总有一天会打通任督二脉,通体舒泰:)

二、初学者简单忽略及困惑的当地

这些仅仅我个人的领会,不一定完全正确

1、Keil ARM运用问题

a、忘掉添加发动文件,我就呈现过一次搞了半天才发现。。。其犯错信息为“error: L6236E: No section matches selector – no section to be FIRST/LAST.”

b、忘了在Options of Target ->C/C++->Preprocessor Symbols->Define中添加“USE_STDPERIPH_DRIVER,STM32F10X_HD”

前者的效果如下图,界说此参数后即可包括 stm32f10x_conf.h文件,而stm32f10x_conf.h能够设置包括(运用)固件库中的哪些外设。

后者则依据所运用芯片flash的巨细挑选,后缀表如下:

cl:互联型产品,stm32f105/107系列
vl:超值型产品,stm32f100系列
xl:超高密度产品,stm32f101/103系列 超大容量 512-1024K
ld:低密度产品,FLASH小于64K
md:中等密度产品,FLASH=64 or 128
hd:高密度产品,FLASH大于128-512

发动文件的挑选也能够参阅此后缀。

2、一些概念

STM32固件库: STM32库为ST供给的API,根据它咱们能够很便利的进行装备STM32寄存器等操作。

一开始我局限于单片机编程的思想,顽固的排挤固件库,想经过单纯寄存器操作来编程。后来发现假如仅仅装备个GPIO口,点亮几个LED直接用寄存器办法当然不杂乱,但跟着代码量的添加此办法将会使人抓狂,由于STM32寄存器繁复,又不简单回忆,如此编程时需求不断的翻参阅手册,这不是折磨人嘛。

而库函数则为咱们封装了对寄存器的操作,供给了一系列的函数、宏、结构体等等,稍有点英文根底的话,会发现非常好回忆。记不住就直接仿制黏贴:)

CMSIS规范(CortexMicroController Software Interface Standard)首要包括以下两个方面

内核函数层:包括用于拜访内核寄存器的称号、地址界说,由ARM公司供给

设备外设拜访层:供给片上核外外设的地址和中止界说,由芯片制造商供给

如想知道更具体的界说,请参阅 arm.cn/forum.php?mod=viewthread&tid=53&extra=page=1″ target=”_blank”>点此

固件库一些文件简介:

core_cm3.c 和 发动文件都归于底层文件,由ARM公司供给,恪守CMSIS规范

system_stm32f10x.c 由ST公司供给,恪守CMSIS规范。首要用于设置体系时钟和总线时钟。

stm32f10x.h 寄存器封装的一些相关界说

misc.c 供给外设对NV%&&&&&%的拜访函数

stm32f10x_it.c 中止服务函数

位操作

a &=~(1<<6); bit6置0

a |=(1<<6); bit6置1

a^=(1<<6); bit6取反

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/262934.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部