[导读]单片机用处这么广,尤其是STM32生态这么火!如何快速上手学习呢?你要考虑的是,要用STM32实现什么? 为什么使用STM32而不是8051?是因为51的频率太低,无法满足计算需求?是51的管脚太少,无法满足众多外设的IO?是51的功耗太大,电池挺不住?是51的功能太弱,而...
单片机用处这么广,尤其是STM32生态这么火!如何快速上手学习呢?
你要考虑的是,要用STM32实现什么? 为什么使用STM32而不是8051?是因为51的频率太低,无法满足计算需求?是51的管脚太少,无法满足众多外设的IO?是51的功耗太大,电池挺不住?是51的功能太弱,而你要使用SPI、I2C、ADC、DMA?是51的内存太小而你要存储的东西太多? 当你需要使用STM32某些功能,而51实现不了的时候,那STM32自然不需要学习,你会直接去寻找STM32某方面的使用方法。比如要用spi协议的网卡、要使用串口通信、要使用rtos等等。寄存器vs库函数 我的观点是:当你debug的时候寄存器很重要,当你需要理解芯片工作细节的时候寄存器很重要,当你开发的时候寄存器不重要。如果你没有遇到非直接配置寄存器不可的情况,那么就不要直接面向寄存器层面开发,因为面向寄存器开发获得的好处往往抵消不掉这样做的坏处。面向寄存器开发程序效率高,但是你需要为了提高0.01%的效率浪费10倍、乃至100倍的时间。既然ST公司已经给你提供了好用的库,没有道理要重新造轮子。什么时候需要通过寄存器开发 第一、某一个代码块调用非常频繁。比如你有一个巨大的for循环,那么这个for循环中的每一步操作都应该被谨慎的优化,优化良好就可以获得更好的性能。这种情况一般常见于图像处理相关的代码中。 第二、库函数有bug。这个遇到的概率非常低,但确实存在。不过一般来说如果mcu表现出预料之外的行为, 你首先要想的应该是你的代码写的有bug,而不是库函数有bug。如果库函数真的有bug,你去google搜一下,相信你绝对不是第一个踩坑的人。对于传统的电子工程师来讲,使用库编程可能会感到有一点虚,感觉没有脚踏实地的感觉。但如果你写过web、写过服务器端代码、写过桌面端代码的话,你就一定会理解API、封装、抽象的意义。对于如何学习STM32这个话题,来看看老司机们的看法。icecut:1. 使用STM32是因为功能比avr好,各种资源比较多。所以选STM32F103,那时候芯片还没这么多,还是用寄存器开发的时代。2. 后来F103的开发板越来越多,切换成使用官方库的确大大提高了生产力,底层不用学的太好也可以开发了。3.ST在力推stmcubemx,此软件会根据你的配置和芯片来生成轻量级的代码。代码量小很多,并且软件上有freertos以及闭源的 ui 库的支持。4. ST芯片的遍地开花,软件上配合 stm32cubeMx 的开发利器可以大大缩短调试的工作量。5. 最近在做互联网开发,有时候还是手痒痒,还想弄ST的芯片玩玩。菜鸟同学:单片机本身没啥好折腾的,重点还是软件架构,针对项目设计软件,深度研究一种单片机。其他单片机都大同小异,大多数菜鸟都把时间荒废在单片机本身应用上,然后会几个外设就说很简单,都认为很简单,但是大部分都是半瓶水。lxyppc:刚开始发现一款比较有意思的产品,主控用的是avr,把里面的代码反编译之后就想抄了,仔细想想要是还用avr很快也会被别人给抄去,这个时候发现了stm32这个片子,还带USB,于是乎就把反编译出来的代码移植到了stm32上,把通信接口由uart改成USB。江枫渔火:花一个星期或者更多时间熟悉芯片很正常。每个芯片公司的芯片还是有风格和使用上的差异。实际用一个不曾惯用的芯片的时候,都是对着数据手册上寄存器写的。我之前没怎么用STM32开发过东西,之前用ATMEL的芯片,用的寄存器操作方式,但我可以将用寄存器写的功能进行封装成函数或模块。冰零分子:1.首先了解下芯片架构,看看这个芯片都能干什么事2.然后跟视频或教程通看一遍,了解下实现一个功能大致需要的步骤3.其次选一个项目直接实践,只要知道大致步骤,库函数配置网上一搜一大把4.做项目时会遇到各种问题,这就是提高的一个过程,项目做完后就熟悉了外设配置弈涯:刚开始接触STM32时还在学校,有很多时间,当时就用寄存器将提供的所有例程,自己重新对照着DataSheet敲一次,根据自己的想法做一些改变。C语言、编程思想、STM32都有了较大的进步。现在在单位也在做STM32的编程,不过都不用寄存器了,但是感觉之前敲的例程还是对现在的工作有了很大的帮助。觉得吧,还是得多动手,基础的东西还是得自己去完整的过一遍。Larm1:1. 刚开始使用寄存器配置时,感觉要看的文档,花的时间确实比较多2. 后来官方推出了固件库,刚开始使用的时候感觉又不踏实,后来发现很不错3. 现在都是直接找官网的相关功能外设代码直接测试、调试,不懂得才去看文档shizaigaole:和学其他单片机一样:1. 买一块开发版,熟悉编译,下载环境2. 写个跑马灯,自己感受一下3. 把STM32的中断,尤其是定时中断搞清楚4. 作为硬件应用来说,一定还要仔细看看IO管角相关电气方面的参数,到这一步就基本入门了。但是要熟练使用STM32,还要踏踏实实的把stm32的文档手册读一遍。
然后学习编译器自带的例程,把这些例程精简以后移植到自己的开发版上去跑一跑。
其实做几个模块后,就基本熟悉了,以后可以试着去啃手册和例程。zai:说白了三句话:1.熟悉编译下载环境2.啃手册3.研习官方例程feilusia:这是我自己的学习路线:1、51学习寄存器操作2、stm8学习寄存器和库操作3、stm32学习寄存器和库操作4、CC2541学习协议栈5、安卓入门学习6、安卓蓝牙学习ywlzh:初学STM32第一步,就是点亮个灯。有人点亮就完了,有人继续深究为什么会点亮。有人是走个过场,有人能举一反三。END来源:网络版权归原作者所有,如有侵权,请联系删除。▍
扫描二维码,关注更多精彩内容
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
在STM32嵌入式开发中,动态内存管理是提升系统灵活性的关键技术,但内存泄漏与碎片化问题始终是开发者面临的两大挑战。本文将结合位图内存池设计与Chrom-GRC™工具链,提出一套完整的解决方案,实现内存资源的高效利用与实...
关键字:
动态内存池
STM32
在工业控制、机器人运动等实时性要求严苛的场景中,STM32的GPIO中断响应时间直接影响系统性能。本文以STM32F4系列为例,结合硬件同步机制与软件优化策略,系统阐述中断响应时间从数百纳秒优化至200ns以内的全流程。
关键字:
STM32
GPIO
本实验活动的目的是利用STM32和嵌入式C编程在基于微控制器的系统上探索和实现实时操作系统(RTOS)。具体来说,本实验演示了使用FreeRTOS来管理多个并发任务,确保确定性执行,适当的资源共享和有效的电源利用。
关键字:
STM32
嵌入式
C语言
这个项目的重点是建立一个简单但功能强大的嵌入式系统,测量环境条件并实时显示它们。使用RT - Spark开发板作为主控制器,系统从AHT21数字传感器读取温度和湿度数据,并将结果输出到板的LCD模块。
关键字:
STM32
嵌入式
AHT21数字传感器
FreeRTOS是一个轻量级、开源的实时操作系统内核,专为微控制器和小型嵌入式系统设计。它提供基本的RTOS特性,如任务调度、任务间通信、同步机制和低功耗管理,同时保持最小的内存占用。
关键字:
STM32
单片机
FreeRTOS
系统通过AHT21传感器连续测量周围环境的温度和湿度。STM32不使用内置库,而是通过定制软件I²C(位敲击)驱动程序与传感器通信,从而完全控制时序和数据传输。
关键字:
STM32
AHT21传感器
LCD
针对轨道交通领域封闭车厢环境中火灾 、异常震动等多重安全隐患 , 采用STM32F103C8T6微控制器作为主控芯片 ,设计了一种智能安防系统。该系统集成温度DS18B20、烟雾MQ-2、震动SW-18010P及火焰传感...
关键字:
STM32
传感器
列车安防
远程监控
物联网
开源运动控制卡正以开放架构与灵活定制的优势,成为打破国外技术垄断的破局者。基于STM32微控制器的开发方案,凭借其高性能、低功耗与丰富的外设资源,为运动控制提供了高性价比的实现路径。从3D打印机的精密挤出到CNC机床的多...
关键字:
开源运动控制
STM32
随着物流行业的快速发展 , 自动化和智能化设备在仓储管理和货物配送中的应用 日益广泛。在这一背景下 ,针对小型商超、仓库等场合 ,设计了一款智能物流小车。该智能物流小车由车体机械结构和嵌入式控制系统组成 ,车体机械结构采...
关键字:
STM32
循迹
openMV
树莓派
在智能家居、机器人导航、工业自动化等领域,精准的距离测量是核心需求。传统激光测距仪依赖脉冲法或三角测距技术,存在成本高、体积大、环境适应性差等问题。而基于STM32微控制器与ToF(Time of Flight,飞行时间...
关键字:
激光测距仪
STM32
在人口老龄化加剧的背景下 ,针对老年人摔倒事故引发的健康风险问题 ,设计了一种基于0neNET云平台的老人防摔智能检测系统 ,通过物联网技术实现多源数据实时监测与紧急预警 。系统以STM32F103为核心控制器 ,集成红...
关键字:
0neNET
STM32
防摔检测
MQTT
Zephyr是一个现代的开源RTOS,已经在工业设备和物联网系统中使用。它支持数十种微控制器,包括STM32和ESP32-S3,非常适合那些想要超越Arduino并了解实时系统如何工作的人。
关键字:
Windows
Zephyr
开源RTOS
STM32
今天我们将展示开箱和审查Yahboom STM32自平衡机器人车。这是一个面向初学者的开源平衡车。具有良好的平衡能力,支持平衡姿势检测,负载可达4KG,甚至可攀爬30°。
关键字:
STM32
自平衡机器人车
K210视觉模块
针对轨道交通领域封闭车厢环境中火灾、异常震动等多重安全隐患,采用STM32F103C8T6微控制器作为主控芯片,设计了一种智能安防系统。该系统集成温度DS18B20、烟雾MQ-2、震动SW-18010P及火焰传感器,通过...
关键字:
STM32
传感器
列车安防
远程监控
物联网
在嵌入式开发中,STM32的时钟系统因其灵活性和复杂性成为开发者关注的焦点。然而,看似简单的时钟配置背后,隐藏着诸多易被忽视的陷阱,轻则导致系统不稳定,重则引发硬件损坏。本文从时钟源选择、PLL配置、总线时钟分配等关键环...
关键字:
STM32
时钟系统
在嵌入式系统开发中,STM32系列微控制器的内部温度传感器因其低成本、高集成度特性,广泛应用于设备自检、环境监测等场景。然而,受芯片工艺差异和电源噪声影响,其原始数据存在±1.5℃的固有误差。本文从硬件配置、校准算法、软...
关键字:
STM32
温度传感器
在能源效率与智能化需求双重驱动下,AC-DC转换器的数字控制技术正经历从传统模拟方案向全数字架构的深刻变革。基于STM32微控制器的PFM(脉冲频率调制)+PWM(脉冲宽度调制)混合调制策略,结合动态电压调整(Dynam...
关键字:
AC-DC
STM32
当前智能家居产品需求不断增长 ,在这一背景下 ,对现有浇花装置缺陷进行了改进 ,设计出基于STM32单片机的全 自动家用浇花机器人。该设计主要由机械结构和控制系统构成 ,机械结构通过麦克纳姆轮底盘与喷洒装置的结合实现机器...
关键字:
STM32
麦克纳姆轮
安全可靠
通过性强