STM32学习笔记之绪论

本文分享了STM32的学习心得,包括学习方法调整、易疏忽之处及关键概念解析,如KeilARM使用技巧、STM32固件库优势、CMSIS标准介绍等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习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公司提供

                    设备外设访问层:提供片上核外外设的地址和中断定义,由芯片制造商提供

            如想知道更详细的定义,请参考  点此

 

           固件库一些文件简介:

                    core_cm3.c 和 启动文件都属于底层文件,由ARM公司提供,遵守CMSIS标准

                    system_stm32f10x.c  由ST公司提供,遵守CMSIS标准。主要用于设置系统时钟和总线时钟。

                    stm32f10x.h    寄存器封装的一些相关定义

                    misc.c   提供外设对NVIC的访问函数

                    stm32f10x_it.c 中断服务函数

 

         位操作

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

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

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

 

   

 

内容概要:文章详细介绍了电梯门禁(梯控)系统的硬件安装与接线要点。首先强调了梯控板与楼层按键对接的重要性,包括遵循一一对应原则以避免错层、越层问题,允许空层存在以适应实际需求。接着阐述了不同接线方式(COM、NO、NC端口的不同组合)对用户权限的影响,如单层权限用户刷卡直达指定楼层,多层权限用户在特定接线方式下的操作限制。硬件安装方面,强调了无源干触点设计原则以确保电气隔离,防止系统间干扰,以及读卡器接入时的规范要求。文章还介绍了梯控系统的技术原理,如身份验证机制(二维码/IC卡/人脸识别)、消防联动功能(紧急情况下释放所有楼层权限),并指出该系统适用于小区、写字楼等场景,支持机器人乘梯SDK扩展。最后,根据不同场景需求提出了适用的接线方式选择,如严格管控场景下选择4.3接线以实现精准权限控制,限制多层用户手动选层场景下选择4.1接线并配合软件权限设置。; 适合人群:从事电梯安装维护的技术人员、楼宇自动化工程师及相关领域的管理人员。; 使用场景及目标:①指导技术人员正确安装和接线梯控系统,确保系统安全稳定运行;②帮助管理人员了解不同接线方式对用户权限的影响,以便根据实际需求选择合适的配置方案;③提升楼宇安全管理和服务质量,特别是在小区、写字楼等场所的应用。; 其他说明:梯控系统的正确安装和接线不仅关系到系统的正常运作,更直接影响到用户的安全和使用体验。因此,在实际操作中务必严格按照规范执行,同时关注最新的技术发展和应用场景变化,以确保系统始终处于最佳状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值