找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4423|回复: 17
收起左侧

如何才能自己编单片机程序?开发板都是copy的,要学数据结构和算法?

  [复制链接]
ID:743654 发表于 2020-7-2 23:10 | 显示全部楼层 |阅读模式
初学51单片机,有点C语音基础,能看懂一些程序。相关资源已经学了一遍,开发板的实验程序都是Copy的,就是还不会自己编写程序。各位坛友有没什么好的建议或者方法,怎么样才能自己编写mcu程序去实现某个功能,是不是要学数据结构和算法?
回复

使用道具 举报

ID:235200 发表于 2020-7-3 07:48 | 显示全部楼层
要自己能编写程序:第一步:建立工程,搭建程序框架;第二步:把要实现的功能用流程图描述出来;第3步:把流程图中的描述用语句表示出来;第4步:编译改正不正确的表示方法
编程最关键的是算法和语句表示,算法涉及数据结构,语句涉及指令或描述语言,要学会自己编程,还是多看看他人的程序,从他人的程序中积累经验,而不只是COPY而已

评分

参与人数 2黑币 +25 收起 理由
cheney03 + 5 赞一个!
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:748788 发表于 2020-7-3 07:49 | 显示全部楼层
要想不copy,就要先copy,然后改进copy,还要会搭板子,在另一个单片机上运行copy
回复

使用道具 举报

ID:718783 发表于 2020-7-3 08:25 | 显示全部楼层
跟着copy的学啊,总结它的思路,我开始抄着来什么东西就白嫖,看的代码多了,之前对自己印象深刻的点就可以随意发挥,就是慢慢来
回复

使用道具 举报

ID:592807 发表于 2020-7-3 09:22 | 显示全部楼层
大神也是经常copy的好吗。谁天天自己敲代码,一个不留神就是改一天的bug。
回复

使用道具 举报

ID:718821 发表于 2020-7-3 09:24 | 显示全部楼层
通用的驱动代码以copy为主吧,核心的代码是自己敲!
回复

使用道具 举报

ID:452950 发表于 2020-7-3 10:02 | 显示全部楼层
可以先根据相似的设计改进,比方说做八路抢答器,可以以现成的四路抢答器为模板修改,改的过程就能理解程序了。
回复

使用道具 举报

ID:774631 发表于 2020-7-3 10:59 | 显示全部楼层
一开始是自己照葫芦画瓢
回复

使用道具 举报

ID:311846 发表于 2020-7-3 17:08 | 显示全部楼层
看你的样子就是copy的不够,网上有很多小项目,把COPY的放进去实现,遇到不同的就要想着去变通修改了,

评分

参与人数 1黑币 +5 收起 理由
cheney03 + 5 赞一个!

查看全部评分

回复

使用道具 举报

ID:795820 发表于 2020-7-3 20:10 | 显示全部楼层
可以根据自己Copy的程序总结一下算法,然后根据找一下编程视频学习一下,进一步理解消化。
回复

使用道具 举报

ID:686782 发表于 2020-7-3 21:36 | 显示全部楼层
视类型而定....copy是学习思考的开始,不必太过纠结。
例如上面说的通用的驱动代码,难道你每次做工程还从头写一遍驱动么?copy代码当然是得理解,像这种,比如你第一次copy别人的某个驱动代码的时候,看看手册,看看时序,这里为什么要这么写,了解一下,之后就算工程用到需要你自己拓展一些东西,你自己理解了自然也可以写出来。没人会每个项目都重复做这些事,你觉得你自己原理理解了,那就可以copy,节省不必要的时间。
我这里指的copy,指的是能进行适当的修改满足自己需求的copy,毕竟,网上的东西也不是全能照搬,大家也都是交流学习,如果你能修改别人的不足之处,那当然更好了。
数据结构的知识有当然最好,目前题主这个阶段我觉得并不需要用到那方面的知识。另外就是别太依赖开发板,自己尝试去根据需求搭硬件电路分析(可以看看论坛上或者网络上别人开源的一些项目,跟着做),相信你会有不少收获的。一开始学习都是很困难的

评分

参与人数 1黑币 +5 收起 理由
cheney03 + 5 很给力!

查看全部评分

回复

使用道具 举报

ID:388197 发表于 2020-7-3 22:00 | 显示全部楼层
赞同9楼的看法,老板是不会在乎你是COPY的还是自己写的.
我实际项目中可以说95%以上的底层代码都是COPY.
接下来应该做的就是找些实际的小项目做做,不要纸上谈兵.等做了一两个小项目,感觉自己基础的东西不够用了,再去补基础吧.

评分

参与人数 2黑币 +25 收起 理由
cheney03 + 5 赞一个!
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:420836 发表于 2020-7-4 06:38 | 显示全部楼层
不要只是想,开始学习如何编程计算机,动手就很重要。
回复

使用道具 举报

ID:699464 发表于 2020-7-4 11:50 | 显示全部楼层
写好自己核心的代码就行了,有空就想一下怎么优化代码,例如增加代码可读性,运行速度提高,能耗优化这些
回复

使用道具 举报

ID:743654 发表于 2020-7-4 13:36 | 显示全部楼层
权威人物 发表于 2020-7-3 17:08
看你的样子就是copy的不够,网上有很多小项目,把COPY的放进去实现,遇到不同的就要想着去变通修改了,

确实,实际做的东西比较少。
回复

使用道具 举报

ID:743654 发表于 2020-7-4 13:40 | 显示全部楼层
OHHO 发表于 2020-7-3 21:36
视类型而定....copy是学习思考的开始,不必太过纠结。
例如上面说的通用的驱动代码,难道你每次做工程还从 ...

说得很有理,学习都是一个循序渐进的过程!
回复

使用道具 举报

ID:546335 发表于 2020-7-4 16:09 | 显示全部楼层
单片机的编程学习要通过实践才能真的掌握,通过实际的操作才能更好的编程。
回复

使用道具 举报

ID:769056 发表于 2020-7-4 16:46 | 显示全部楼层
每个人都是copy过来的,关键是你会不改,自己想点小玩意做做,灯带等等。想想这些东西是怎么实现的。多问问自己为什么会出现这样的效果,我还能改成什么效果。数据结构最好有,没有也可以。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表