你点击蓝字关注,回复“入门资料”获取单片机入门到高级开挂教程
开发板带你入门,我们带你飞
文 | 无际(微信:2777492857)
全文约1622字,阅读大约需要 5 分钟
我觉得区别还是挺大的,我们也是从开发板学起的,开发板的尽头,是把外设调通即可。我说,要感谢他们,降低了学习的门槛,大家定位不一样,开发板的定位是教你学会这款芯片的使用,而不是教你做项目,教程能开源,就很不错了,也就靠硬件挣钱。没人会纯粹为情怀而分享系统的教程,但凡是分享,都带目的的,只是时间问题,务必记住这句话。等到了某个阶段,想被割,都找不到资源的时候,才叫造孽,比如工作中的问题,成长过程中的瓶颈问题等等…在实际产品开发中,调通单片机外设,仅完成了10%的工作量,90%都是在处理产品功能逻辑。拿串口举例,开发板仅仅是调通串口发送和接收字节数据即可。但实际应用时,肯定会接不同的传感器和模块,比我们无际单片机项目6接的4G模块。 第二步通过串口发送AT指令,去实现发短信、打电话、以及用4G连接服务器。第三步,要实现产品具体短信内容,电话呼叫逻辑,服务器还涉及到协议设计,解析等等。每种4G模块都有自己特定的AT指令集,需要仔细研究模块文档,这个过程能学会解读厂商文档,理解不同指令的功能、参数和返回值。实际上,自己去看这些文档,哪怕能看懂AT指令,落实到应用上,也会有很多问题。还需要知道AT指令使用场景和流程,我们的经验是以前做产品积累的,都是找原厂的技术支持,然后自己踩坑调试出来的。这个过程最直接的就是能培养阅读技术文档的能力,学完以后,以后用移远的模块,也很熟了,这公司的模块市场占有率非常高,很多产品都在这个型号。4G模块有多个工作状态(初始化、注册网络、拨号等),需要设计复杂的状态机。以上是我们项目6这部分的代码,我们以前产品,就是这样去设计的,不用担心学到的,偏离实际工作的问题。 这个过程,能学习如何设计和实现可靠的状态转换逻辑,培养复杂系统的设计能力,属于功能经验类的知识,这是开发板学不到的。AT指令的返回数据格式复杂,需要编写解析架构和算法。这个过程能提升了实际数据处理能力,而不仅仅是简单的发送接收。4G模块可能随时发送状态信息,需要设计异步处理机制。我们采用的是队列方式先缓存,在通过状态机方式发送。这个过程能学习数据环形缓冲区设计等,能深入理解了嵌入式系统的异步编程模型。实际环境中可能出现各种异常(如没检测到SIM卡,信号丢失、模块无响应),我们在写程序时,要考虑到各种因为环境或者其它导致的功能异常情况,这是产品稳定性的关键细节。这个过程能学到错误检测和恢复机制,能学到我们对于一些可靠性设计的思维,这在实际项目中极其重要。比如用STLink或者串口去调试通讯数据等实用的技巧。我们项目1,4,5这种探测器,是用电池功能,所以要考虑到省电,通过项目能学到我们去实现低功耗的方法。 虽然功能不复杂,但是我们第一次做低功耗产品,也是踩了很多坑的。不同的项目,类似的细节还有很多,这就是为啥只有工作了,才能真正成为工程师的原因,涉及的细节太多了,而且大多数细节问题在网上都找不到答案的。 end
下面是更多无际原创的个人成长经历、行业经验、技术干货。
1.电子工程师是怎样的成长之路?10年5000字总结
2.如何快速看懂别人的代码和思维
3.单片机开发项目全局变量太多怎么管理?
4.C语言开发单片机为什么大多数都采用全局变量的形式?
5.单片机怎么实现模块化编程?实用程度让人发指!
6.c语言回调函数的使用及实际作用详解
7.手把手教你c语言队列实现代码,通俗易懂超详细!
8.c语言指针用法详解,通俗易懂超详细!