江苏省内网站建设,重庆网站建设 渝,北京定制网站价格,怎么里ip做网站我刚开始接触嵌入式的时候#xff0c;感觉学这个好变态啊。 要学的东西太多了#xff0c;数字电路、模拟电路、C语言、汇编、51单片机、Protel 99SE、Pcb Layout、STM32单片机、RTOS、Linux、ARM等等.... 可以说#xff0c;随便拿个魔法电路出来#xff0c;想达到精的程度感觉学这个好变态啊。 要学的东西太多了数字电路、模拟电路、C语言、汇编、51单片机、Protel 99SE、Pcb Layout、STM32单片机、RTOS、Linux、ARM等等.... 可以说随便拿个魔法电路出来想达到精的程度都够摸索好几年。 所以我的建议是精于基础广于工具。 做了单片机开发10年虽然产品类型一直在变但如果做多了会发现很多都是能够改改复用的很多都是能够举一反三的。 特别是对于单片机来说更是大同小异。 我用过STC、NXP、NUC、ST、TI等单片机其实内部资源最常用的无非就是GPIO、定时器、串口、ADC、IIC、SPI等等也不多.. 你会用ADC采集电池电量你也能举一反三用ADC去采集各种传感器信号了。 无非就是采集以后数据结构和算法的差异。 我见过大多数的新手普遍分不清工具和基础以及对它们重要性的权衡失误。 有些新手51单片机都玩不转常用通信协议都没用过就疯狂进阶STM32、RTOS。 最后发出感叹卧槽这太难了。 其实就是花了太多时间在工具层面的学习而基础是千疮百孔的。 工具是什么 我觉得是编程语言、单片机、RTOS、Keil、stm32cubeMX、AD... 要知道我们最终的目的是什么 往近了说就是要有做项目的能力这决定你找工作能否有优势能否开高工资。 往远点说就是要解决用户的需求这决定企业能不能挣到钱能不能在市场立足。 好比写作文哪怕你精通行书楷书草书隶书....对于写好作文来说帮助不大。 工具其实会随着时间不断变化的比如今年STM32用得多或许明年就被国产替代了。 基础是什么 以我们无际单片机项目特训营的项目3为例举个简单例子。 比如我要检测按键短按、短按释放、长按、连续长按、长按释放功能要求做到移植方便扩展按键方便。 这种功能我的实现思路和步骤是什么 第一步先搞懂硬件原理。 硬件原理很简单就是检测单片机IO电平低电平代表按键按下。 第二步思考单个按键实现按键短按、短按释放、长按、连续长按、长按释放的逻辑。
其实检测短按、短按释放、长按、连续长按、长按释放的核心就是检测IO口低电平的持续时间。 我程序对短按的定义就是2秒以下都是短按2秒以上是长按然后2秒以后每个150ms代表连续长按。 所以写代码首先要抓到功能硬件原理的规律线索再思考程序怎么实现。 刚开始先实现功能出第一个功能版本再继续优化成几个按键的这样难度会小一点。 代码有点长且是我们付费项目代码就不截全了。 这个代码有很多数组是因为已经实现可多按键的功能。 第三步考虑如何扩展多按键
为什么要考虑多按键的扩展 因为傻杯项目经理整体要改功能需求做好预留免得哪天晚上加班改到凌晨。 像这种多个器件(按键/LED)有同样功能的最好的解决方式就是用数组然后用for循环去遍历了。 所以我采用数组的方式单个按键电平检测是单独的函数最后整合到函数指针数组里这样方面for去遍历。 用这种程序架构有什么好处
1.增加减少按键很方便直接修改相关的数组还有电平检测函数就可以了。 2.可移植性强哪怕换一款产品换了不同的单片机只要定义hal1_getKey1Sta这些硬件驱动层接口就好了不需要改按键检测核心函数hal_KeyProc。 总结下基础是什么 我觉得是功能实现背后的原理、协议、思路、接口、思维、框架。 有好的编程思维代码水平以这两者为基础能衍生出更好的程序架构、数据结构、算法。 我们应该精于这些东西虽然每个产品的功能不一样但实现思路是一样的是能举一反三的。 就像等你做了开发5年以后突然有一天对指针是灵魂的理解恍然大悟卧槽原来c语言也能实现面向对象的代码风格。 而不是死记c是面向过程的语言java是面向对象的语言。 最近很多粉丝问我单片机怎么学我根据自己从业十年经验累积耗时一个月精心整理一份「单
片机最佳学习路径单片机入门到高级教程工具包」全部无偿分享给铁粉
除此以外再含泪分享我压箱底的22个热门开源项目包含源码原理图PCB说明文档让你迅速进阶成高手 教程资料包和详细的学习路径可以看我下面这篇文章的开头。
《单片机入门到高级开挂学习路径(附教程工具)》
《单片机入门到高级开挂学习路径(附教程工具)》
《单片机入门到高级开挂学习路径(附教程工具)》