其实简单或者复杂都不重要,重要的是通过STM32我们能学习到什么?

做一个键盘/鼠标,可以学习USB协议。

做一个联网设备,需要学习以太网,TCP/IP协议的底层实现。

做一个无线设备,可能需要学习蓝牙、WIFI或者zigbee的协议,而最终的应用,可能不一定有库或者包,需要自己去写底层。如果用模块,则可能需要学习SPI、I2C或者SDIO去连接模块。

做一个温控设备,或者平衡小车,需要学习PID算法。

做一个摄像头,可能需要学习SCCB协议,如果想深入一些,可能需要学习一些图像处理的知识。

如果这个摄像头要连接PC,做更深度的处理,则需要学习上位机的编写,可能需要设计协议或者写一个服务器,此时可能需要学习开发服务器的知识,以及一门写服务器的语言,包括不限于C++/Java/python/nodeJs。服务器框架可能也要学一个。服务器都有数据库,学习个简单的nosql吧,当然mysql和oracle也可以。

上位机要是需要图形界面,最简单的可能是electron,当然C++调用win32 API更好。

如过要做人脸识别、图形分割,还需要机器学习的知识,可能需要python和tensorflow / pytorch框架,当然其他语言也可以,但可能更复杂,而机器学习,基础是数学,嗯~,很难的那种。

现在都是手机端操作,Android可能学一下,Java走起。如果碰巧手机是苹果的,objective-c学起来。

如果继续深入,做一个更复杂的设备,首先需要自己设计板子,PCB设计需要学,那模电数电也需要学,电路原理更需要学。

软件层面,可能发现裸机已经不够用了,可能需要学习ucos/freeRTOS之类的操作系统,甚至自己学习写一个操作系统内核。如果这个系统要求健壮、高效,需要深入理解操作系统、数据结构、算法、优化、汇编语言等。

上述种种内容还不少,不知不觉已经学习了计算机科学的一部分了,对计算机科学有了基本的了解了。

如果大家觉得这是强行关联,其实不是。综上所有,只是用STM32做了一个处理单元放在服务器端的小机器人,能保持平衡、识别人脸、能在PC端和手机端控制而已。

语音识别、对话系统等功能还没说,这些可能需要更多自然语言处理、乃至强化学习的知识,你发现,往往效果不尽如人意,这不是你技术不好,而是这个世界的瓶颈,恭喜,可以看论文、写论文,为人类在计算机、人工智能领域的突破做贡献了。

什么?想要把运动单元做波士顿动力那样的?这事情就更复杂了,不然你以为我怎么入坑的?

以上是扩展,向深学习呢?

技术深究起来自己都怕,比如刚学习了STM32的cortex架构,那其寄存器、指令集、内存是如何实现的?刚了解这些,那其锁存器是哪一种,取指、解码过程是怎样的?加法器又怎么实现?刚了解三极管和布尔逻辑运算,那三极管是怎么工作的?刚了解PNP和NPN,那共射特性曲线是怎样的?为什么载流子会运动,正偏反偏是什么?为什么磷、硅、硼作为半导体材料,会形成电子流动?空穴是否能流动?

重点不是STM32能做什么,而是我们能用STM32做什么?能做什么程度的产品,市场竞争力如何,甚至考虑是否满足了用户未被满足的需求,也就是填补了市场空白。技术并不是独立的,而是拓扑的。

为种花崛起而学习,加油!!!

===

觉得简单就对了,说明意法成功了

当年STM32是怎么在重多单片机里脱颖而出的?库函数库函数库函数。在这之前,单片机主要是51、AVR、PIC、MSP430这些玩意,就是写个UART通信函数,都要先去CSDN“借鉴”一下,发现别人写的不完全满足需求又自己修改,然后慢慢地积累出自己的一套库...然后在换下一款单片机的时候把这几年的积蓄丢掉...

意法半导体搞这个库函数,不就是为了降低开发门槛么?让开发者专注于更抽象的应用而不需要太关注单片机底层的东西才是大趋势,意法抓住这个趋势先发制人才得以迅速占领市场。什么?直接写寄存器?汇编?这种炫技的东西绝大多数STM32的目标应用都不需要。什么成本敏感?成本敏感谁选STM32啊,几毛钱一颗只能用汇编写的单片机了解一下。

换个角度吧,Arduino简单吗?觉得Arduino简单是自负么?谁在乎你觉得Arduino简单不简单啊,大家只关心你用Arduino实现了什么。

所以STM32简单不是理所当然的事情么?倒是很好奇为啥这种理所当然的事情会让人怀疑自己是不是自负。

转自:

作者:蒋宇辰
https://www.zhihu.com/question/450708178/answer/1812354503


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

嵌入式Linux

微信扫描二维码,关注我的公众号

感觉stm32太简单是一种自负吗?相关推荐

  1. STM32延时函数的四种方法:普通延时(2种)、SysTick 定时器延时(2种)

    STM32延时函数的三种方法:普通延时.SysTick 定时器延时(1.中断方式:2.非中断方式) 单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us( )和毫秒级delay_ ...

  2. 【Python自动化任务】让运维更简单的7种定时任务实现方式,总有一种适合你的场景

    想要看更加舒服的排版.更加准时的推送 关注公众号"不太灵光的程序员" 每日八点有干货推送 有粉丝留言问什么时候可以写一个关于自动化任务的文章 准备上!~ 感觉有用关注公众号 &qu ...

  3. 让生活变得简单的60种方法

    让生活变得简单的60种方法 60 Ways To Make Life Simple Again [zz]来自:http://www.marcandangel.com/2010/11/01/60-way ...

  4. 初中生文凭学习单片机STM32很简单吗

    初中生文凭学习单片机STM32很简单吗 ///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺也能领取哦.最近比 ...

  5. 通过 Desktop 学 Docker 也太简单了

    后端系统会部署很多服务,包括我们自己开发的服务,还有 mysql.redis 等中间件的服务,部署它们需要一系列依赖的安装.环境变量的设置等等. 如果你要部署多台机器的话,同样的操作要重复多次,万一哪 ...

  6. java定时任务_定时任务最简单的3种实现方法(超好用)

    定时任务在实际的开发中特别常见,比如电商平台 30 分钟后自动取消未支付的订单,以及凌晨的数据汇总和备份等,都需要借助定时任务来实现,那么我们本文就来看一下定时任务最简单的几种实现方式. TOP 1: ...

  7. 37岁,感觉上班太累,可做这5个生意,年轻人看不上,但却挺赚钱

    我今年37岁,在一个私企工作. 每月拿到的工资,只有3000多块,扣除了社保这些,到手的也就2000多一点. 而且每天上班,真的是非常头疼. 37岁,感觉上班太累,可做这5个生意,年轻人看不上,但却挺 ...

  8. 其实英语实在太简单了

    先别急,这是真的,今天没什么时间就简单说说.. 首先我的英语水平:讲纯正美语,看英文原著,看英文原声电影不需要字幕...告诉大家我的一些心得.. 因为英语和汉语太大不同,让很多人看着一个个字母太有距离 ...

  9. 转载:stm32的引脚有两种用途

    stm32的引脚有两种用途:GPIO(general purpose io)和AFIO(alternate function io) 对于一些引脚(视芯片而定),这两种用途都没有,如在64脚产品中,O ...

最新文章

  1. 提高C++性能的编程技术笔记:多线程内存池+测试代码
  2. AI 行业寒冬犹在:融资规模不足巅峰时期一半,上市潮将伴随倒闭潮
  3. NodeJS API Process全局对象
  4. win10显示隐藏文件_如何在Mac上显示隐藏文件?苹果mac显示隐藏文件夹方法
  5. python调用父类对象的几个方法
  6. leetcode 767. 重构字符串(贪心算法)
  7. android 图片切割代码,Android用clip剪切图像资源
  8. ubuntu emacs的安装
  9. 数据库学习笔记---SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)
  10. 【南邮操作系统实验】页面置换算法(FIFO、LRU、OPT)图形化界面(JavaFx)
  11. matlab经纬度画二维图,Matlab绘制汉经纬度的散点图 2
  12. 关于瑞萨RH850中断的异常处理函数地址Exception Handler Address的理解
  13. python3调用arcpy地理加权回归_分析地理加权回归分析结果的操作方法
  14. Hibernate中evict方法和clear方法说明
  15. 移动硬盘备份linux系统盘,Ubuntu 系统备份到移动硬盘(tar) 还原到另一台电脑
  16. 计算机电源故障引起火灾,计算机硬件的常见故障及维护方法
  17. 局部加权回归LOESS
  18. ❤️UI自动化轻松解决微信手工群发消息的烦恼❤️
  19. 如何降低APP运营成本?
  20. Razor 视图引擎的一些属性和方法

热门文章

  1. NFS无法启动根文件系统的解决
  2. Sun为何一掷千金拿下MySQL?
  3. 华为3COM交换机PVLAN配置使用说明
  4. pytorch resnet50_PyTorch终于能用上谷歌云TPU,推理性能提升4倍,我们该如何薅羊毛?...
  5. 链表(Linked List)之单链表
  6. dto 是只给前端需要的数据吗_DO、VO、DTO...XXOO,你弄明白了么
  7. 血红蛋白判断access程序答案_普渡大学开发智能手机应用程序 帮助评估贫血症情况...
  8. 理解C++中拷贝构造函数
  9. grpc php 返回值过大,使用grpc实现php、java、go三方互调
  10. stdin,stdout,stderr