找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1498|回复: 2
打印 上一主题 下一主题
收起左侧

用KEIL5联调 proteus 写完代码,点击图中按钮运行报错,请问该怎么处理?谢谢!

[复制链接]
跳转到指定楼层
楼主

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:798631 发表于 2021-3-9 08:51 | 只看该作者
对于很多初学者来说,学习的基础不扎实的居多,因此很多人怀疑怀疑这将是学习单片机开发不可逾越的大山,对未来没有足够的信心。总的来说,知识储备不是学习单片机开发的必备条件,但庞大的知识储备对学习单片机开发大有助益。

       这个问题,其实和“英语不好,可以学习编程吗?”同属一类。不可否认,英语基础好对于学习编程确实是很有帮助的,但它并不是学习编程不可跨越的鸿沟。事实上,这并非无法克服。
       注意,基础薄弱并不等于 0 基础,如果是这样,那在开发设计的过程中,确实需要适当地恶补;如果数学基础很差(例如仅有小学功底),就需要在学习数据结构的过程中,有意识地恶补一下数学。这里所谓的恶补,不建议读者无目的地单纯学数学知识,而是在学习数据结构的过程中,遇到搞不懂的数学运算,再去刻意地翻阅相关资料。

      举个简单的例子,评判一个算法的时间复杂度,那么下面 C 语言代码的复杂度是多少呢?
      i = 1;
      while( i < n ){
           i = i * 2;
       }
对于此段代码来说,我们只需要求出 while 循环中代码(也就是第 3 行代码)执行的次数,即可轻松得到这段代码的时间复杂度。可以看到,循环条件为 i<n,而变量 i 的值每经历一次循环都会翻倍,因此假设有一个临界值 m,能恰好使 2m = n,此时循环将会终止,程序运行结束。

      求这段代码的时间复杂度,只需要求出 m 的值即可。这就需要我们具备对数运算的能力。此时,如果读者无法理解 m 值的由来,就需要恶补一下关于数学中对数运算的相关知识。

      当然,对于绝大多数的数学运算,也可以借助计算器或者网络工具来计算得出。事实上很多工作,我们完全不必亲力亲为,要善于运用网络来解决遇到的难题。在实际开发中,很多网站都能提供帮助,例如 C++ 中可以使用 STL 标准库,Python 中可以使用 collections 模块等等。这意味着,我们的项目变成了已封装好的模块的组合应用,只需简单了解各个模块,即可实现最初的目的。

       读者可能会说,学习单片机开发肯定是要具备相关知识的,没有基础空中楼阁也不能落地。这个是肯定的,只要读者具备一定的学习能力,都可以学会。我认为,更多的是要求我们具备一定的问题分析能力和空间想象力,项目只是C单片机语言的一种具现形式。总的来说,无论是学习数据结构还是学习算法,而至于知识储备,庞大更好,没有就要学,这个直接决定最终的终点。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:889708 发表于 2021-3-10 10:41 | 只看该作者
15830266185 发表于 2021-3-9 08:51
对于很多初学者来说,学习的基础不扎实的居多,因此很多人怀疑怀疑这将是学习单片机开发不可逾越的大山,对 ...

答非所问呀
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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