我记得刚开始自学单片机的时候,虽然把每个外设都用起来了,但是一到做项目就不知道怎么下手。

只能照着一些开发板的例程,自己按照他们的思路写一遍,如果没有例程就完全是懵逼状态。

那时还以为自己的基础不行,又去好好把c语言、单片机系统复习了一遍,如果你也试过,那一定知道其实没什么鸟用。

做不出项目,最主要的原因不是你的基础不行,当然也有这方面的因素,但不是最主要的。

下面,我来说下自己是怎么从一个做不出项目,到最后能够独立完成各种项目的,看完你一定知道下一步该怎么做,毕竟真正走成功过的路才具备参考的意义,文末有彩蛋哦。

我从以下几个方面来剖析。
1. 为什么做项目无从下手?
2. 接下来怎么做?

一、为什么做项目没思路?
做项目无从下手,最大的原因是你缺代码组织能力,即项目经验。

外设你都能用起来,但是一个产品功能肯定是是需要把各种输入型外设采集到的数据进行一个逻辑处理,再通过芯片的输出型外设去控制外围电路最终实现产品的功能。

很多人就是这个环节出了问题,多个外设组合在一起使用,必定会增大代码量。

比如说又要检测按键短按、短按释放、长按、长按释放,中间最头痛的是有没有一个好的消抖和延时方法。

除了按键以外,可能同时你的串口还在一直接收数据,然后解析数据,最后还要通过串口发送一组响应数据出去,要怎么写函数才能保证数据完整度,同时还要保证写的代码表现得不业余?

或许还要驱动一些指示灯完成一些效果,比如说隔3秒快闪2次等等。

有些功能如果代码处理不好是会相互冲突的。

如果你没经验,没处理过这样的问题,那肯定没有头绪对吧?这跟你的经历有关而不是说基础。

二、接下来怎么做?
那我们找到问题了,接下来该怎么做?

其实一个产品功能涉及到的外设啊,协议啊,常用的来来去去就这么几种:
从功能划分就是:按键功能、串口数据收发、SPI通讯、IIC通讯、LCD显示、模拟量采集、输出控制(继电器、LED等等)

涉及到的外设:GPIO、定时器、中断、ADC、串口、PWM、DMA、FSMC

不管产品功能多么复杂,最终到单片机处理的肯定就是这么些东西。

你只需要每种外设,不管是需要采集的,还是需要控制的功能代码怎么写比较好以后就可以彻底解决这个问题了。

当然说起来简单,实际做起来还是有很多细节的问题。

前面没思路是正常的,也不用自己去想,直接去看别人怎么写,最好是看一些写的比较好的。

比如说按键检测的功能别人都是怎么写的,如果没参加工作接触不到这种代码,完全可以在网上搜。

先模仿,吃透以后分析这种写法的弊端,而创新就是怎么去把这个弊端解决。

其实就是这么个过程,并没有能够让你一下从菜鸟秒变大神的神丹妙药,如果有捷径,那肯定就是有一个大神带着你,教你实现原理,给你提供实现源码,并且指导自己重写过程中碰到的问题。

如果你再网上还是有很多类似功能代码搜不到,或者你觉得不够好。

那么,彩蛋来啦!
我在2019年专门录制的一套程序架构的视频,录着玩的,不要抱有专业讲师水平的期望,我一边录还一边点烟,但是内容价值绝对能让你少走几年弯路,公益分享不用钱!

这套教程就是专门讲怎么解决这些实际产品开发当中的痛点,比如说本文说的按键处理,串口数据处理,LED灯处理等等。

其中涉及到了一些c语言高级的应用,比如指针、结构体,并通过这些高级应用实现了一些实用的功能,比如队列算法、回调函数、任务创建、任务调度等,同时也为准备学习操作系统的童鞋打下基础。



这里不能放链接,怎么拿,不用我教你了趴?记得先三连哦!

Stm32学了好久了,为什么做项目还是力不从心?相关推荐

  1. STM32学了很久,我还是不会做项目。

    关注.星标公众号,不错过精彩内容 素材来源:知乎 编辑整理:张巧龙 知乎有人问: Stm32学了好久了,感觉独立做项目还是有力不从心的感觉? 从51开始学习,到stm32,目前为止差不服两年的时间了, ...

  2. python一个月能挣多少钱-零基础学python,我可以让你一个月上手做项目!

    今天达内python培训想要跟所有零基础学习python的同学分享一些神操作,这些操作可以让你在一个月上手做项目,我准备好了,你呢? 为什么你的Python学习效率如此之低?学了3个月还不会做项目做爬 ...

  3. apriori算法python_清华学霸亲测有效,每日自学两小时Python,学完就能做项目

    之前小编发过一些关于数据分析的文章,收到大家不少的好评,不过也有一些困惑: 入门数据分析该学哪些知识点?该看哪些书? 是从Python入手还是R语言?常用的算法有哪些? 可以练手做项目的数据库去哪里找 ...

  4. web前端30个项目列表,学完即可上手做项目

    此篇文章推荐有想法学习前端,已经上路琢磨web前端的朋友们. 之前很多朋友跟我说,自学编程的时候,总是摸不清头脑,一大推问题需要解决,种种书籍需要去啃,字符.单词都需要去记.就感觉要费上很多时间,居然 ...

  5. 研究生期间做项目所学到的一些经验

    本文主要分享研究生期间所学到的一些科研和项目经验,实践部分偏重于硬件电路.点滴琐碎,还请见谅. 一  项目所得  1.1 心得体会 任何事物都要从最简单.最基本的构架入手,理解复杂的.--接触学习新东 ...

  6. 新手学stm32学f1还是f4,stm32初学者最好买哪种开发板?

    现在学习单片机,各种教程.开发板只能用泛滥成灾来形容. 不像我10年前自学的时候,没那么多选择,有配套视频教程的已经谢天谢地了. 选择多未必是好事啊,我发现一个问题就是,教程越多,很多初学者反而学不会 ...

  7. 谈谈最近独立做项目的一些事情,一些小经验,分享之!

    可以说我是一个码农,一个纯正的码农,一个脱离了低级趣味的码农,时刻准备着要做一个对社会有贡献的码农. 平常最喜欢的事情就是在群里问问题,总是有那么一群好哥们在一起,这样可以享受装逼的乐趣. 谈了这么多 ...

  8. 单片机初学者做项目为什么这么难?单片机初学者心得有哪些

    现在回想起自己刚开始学习单片机的经历,让我印象最深,也感觉最难学的就是电路了. 当时看了模拟电路的视频,看到三极管放大电路就开始云里雾里了. 后面以为是自己基础太差,又买了一本比笔记本还厚的电子元器件 ...

  9. 不想学python-学Python好久都学不会?然后选择放弃,总结出这几个原因

    前信息化产业发展势头很好,IT就成为了很多普通人想要涉及的行业,因为相比于传统行业,IT行业涨薪幅度大,机会也多,所以就会大批的人想要转行来学习Python开发.目前来讲市场上需要的Python人员非 ...

最新文章

  1. 自动驾驶关键环节:行人的行为意图建模和预测(上)
  2. note同步不及时 one_高速路失灵/A柱断裂…理想ONE的自动驾驶还能信吗?
  3. NOIP模拟测试22「位运算」
  4. 摄像头分辨率怎么调整_网络监控摄像头怎么选择 网络监控摄像头选择方法【介绍】...
  5. mysql blob图片_显示存储在mysql blob中的图像
  6. webview 模拟点击_Android如何基于坐标对View进行模拟点击事件详解
  7. 期刊论文格式是什么样的,如何排版?
  8. 利用计算机的随机模拟结果帮助学生,数学《教学反思》 初中白小曼
  9. BAT批处理提取文件内容替换指定文件内容
  10. 我的第一本社会心理学(part1)--社会心理学是研究个体和群体的社会心理、社会行为及其发展规律的科学
  11. 右键一直转圈圈(右键桌面和右键打开文件夹)的两种解决办法小总结
  12. Spark亚太研究院王家林:从技术的…
  13. 深圳店小秘Java后端面试
  14. 由平庸到崛起:细数那些为三星打下半壁江山的经典“Galaxy”智能机型
  15. Miktex 修改经验
  16. MTD系列 - 关于linux MTD的一些理解
  17. ScriptEngineManager
  18. web上传图片到七牛云服务器
  19. YOLOv5的Tricks | 【Trick11】在线模型训练可视化工具wandb(Weights Biases)
  20. 在CloudFoundry上部署独立Java应用

热门文章

  1. Linux文件内容查看相关命令
  2. SPU表管理之查询获取SPU表列表数据
  3. 爬虫之数据提取jsonpath模块的使用场景和使用方法
  4. 小时候的小霸王游戏!坦克大战 超级玛丽 魂斗罗 忍者神龟 都有!
  5. Java环境及Eclipse(MyEclipse)安装
  6. SLAM基础:相机与图像
  7. GPU服务器选购指南-思腾合力篇
  8. FindAllAnagramsinaString
  9. 《zabbix用户权限分配管理》-8
  10. Chapter 3、Java语法基础(二)----Java基本数据类型、变量与常量 (20th,Feb)