签到

06月20日
尚未签到

共有回帖数 0

    君子执笔

    等级:
    其实我也只是最近写程序有点感悟,突然想起逛一逛和c语言有关的贴吧的,发现好多人都在通过小黑板上输出字符的方式来学c语言。作为一个同样的编程爱好者,参加过一些编程方面的竞赛,得过一些奖。其实我最开始写程序也走过这样的路,在小黑板上算题显示结果,不过作为自学,这样学真的不容易学好的。个人觉得,最好的学法还是买块stm32或者是msp43x,或者是其他的一些launchpad,一定是要有debugger的,有目的的要做一个什么东西出来。这样学。写模块的时候最好去看看人家意法半导体,德州仪器那些公司写的library,照着,自己也跟着做几个出来(哪怕只是用来开关led灯的)。这样学习的收获可能远大于你去往小黑板上输出几万次字符串的。
    真得,只有在用MCU的时候,才能体会到,C语言,指针的精髓,,特别是意法的库函数,可以看到里面各种通过指针的地址偏移,以及结构体去操作特殊功能寄存器。简洁,高效的操作。去阅读这些商用的库函数,对初学者对c语言的理解帮助巨大。
    至于书籍,还是推荐C程序设计语言(C语言的发明者写的)来入门,比谭浩强的强多了,有兴趣可以看看C与指针。推荐去看看野火的视频或者正点原子的视频,淘宝上都有,野火的在野火论坛上都有。跟着这些有良好的编程习惯的人学习,自己写的程序才能不乱,易读(相比之下看郭天祥视频入门的人程序就很乱)。
    另外个人觉得,如果是学C语言最好还是通过mcu来学,毕竟C语言的背景决定了这是一门偏向硬件的语言。而且C语言当今的主要还是MCU上用得多。而且做控制也要比在小黑板上输入输出要有意思得多。
    mcu和c语言的学习关系不大,你要是自己编过程序或者是自己做过东西你就知道,偏底层说白了,就是写,读芯片,关键还是对mcu的功能寄存器,各个引脚功能的理解,而且就读写芯片来说,汇编更好用,如果你用到了复杂的逻辑运算,比如bcd转asc2,再转一般的数据格式,那么c语言会非常出色,汇编就麻烦了,毕竟有的mcu,比如pic的mcu,没记错的话,没有乘法和除法吧

    除非你用软件模拟,硬件上的东西,问题一般都出在问题上,比如开发板分布电容比较大,不能达到芯片的高速要求,但是你却按照高速写的时钟周期,那么肯定就不行。硬件问题更多了,前一阵子我写一个国产的时钟芯片ds1302,这个芯片连读两次week和hour就会自动锁死,所有的数据脚高阻,这个显然是硬件毛病。
    我并不感觉写mcu会对c语言的练习有多大帮助
    和你观点相反,我认为练习c语言,应该参考数据结构与算法那种的模式练习,mcu
    学数字电路确实对理解程序有帮助,比如说状态机,状态机是cpu的前身,而现在程序都围绕这个东西来做,但是也说明了编程的实质,围绕状态做处理,可以这么说吧,编程就是根据输入状态,来处理输出状态
    为什么说mcu不适合学C语言,我们首先先学c,然后做实验慢慢摸索,这个过程,我们希望如果出现问题,那么就出现在代码上,而不是出现在硬件上,小黑板恰恰有这个优点,硬件问题概率太小太小了,都是代码问题,这个就会帮助你学习代码,而屏蔽硬件
    但是mcu你知道,硬件状态不可控,通常需要代码,模块的软模拟,示波器同步走,才能确定是哪一部分问题,真的不是适合c语言的学习。 要不然怎么说,嵌入式不好走
    你说的那几个算法,我实际工作接触到的就是pid,pid的这个算法,和数据结构与算法不是一回事儿。 你也知道现在计算机计算积分微分和我们高数里边的不一样,都是做模拟出来的,就是我说的那种,逻辑处理,c语言会很方便。c语言在嵌入式很重要,但是真不适合初学者,初学吗,坑越小越好

    楼主 2016-06-23 12:36 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知