一个单片机硬件旺的练成和关于学习C的重要性

2019-08-15 16:27发布

 我记得在6年前从新捡起老师教我的电子技术时,那时没有办法,跟错行当,亏得一踏糊涂,我是个卖机器的,而且机器都是一些高大上的贵得要死的进口机。行业大跳水,最后没办法,也请不起员工了,工程师也没心思跟我了,几十人的公司解散之,就留一小MM助理,留下的项目,是一个生产打印玻璃的1.2米X2.5米的喷墨打印机,拿起书本,在胸口帖个勇字就上了。         好在我当年读书时读得还不错,而且我初二就是一个电子发烧友了,并且在初三写出了第一行代码,全是无师自通,高考完那个暑假我居然能写数据库代码赚钱了。在上了大学后我的计算机原理老师对我印象深刻,因为我高三就看懂了这门课了,有了这些底,在穷图末路中勇者先。从此走上硬件旺这条不归路。         我的第一张单片机是200多块钱从赛格买来的,花了几天,当年学的东西差不多捡回来了,因为我从来没学过C,没法子,拿着周坚老师的书开始点亮了走马灯,立马兴备得睡不着觉了,接下来,一个月,我一边拿着前员工做好的板子(元件已经焊上去了,只是里边没代码),一边拿着书一路跟下去,中断,定时器,串口,这些都能用得不错了,也有了点心德,觉得C不就是这些吗?不难呀,在接下来的一个月,我还会用上1260的LCD了,我成功搞定了这块电路板的代码,我这么认为,当你会用了一个单片机的开发环境,并且IO,定时器,中断,串口,并且有一定的数字电路基础和模电基础,就可以出来干点事了,在工业控制行当里也能黑点钱了。         接下来的一二年里,我运用了这些技能居然活下来了,并且对很多传感器,总线,工业控制的执行电机都有了不错的了解,并有机会做了大量的实验,现在我抽屉里还有当年自己手焊的大量实验用电路板,一路过来的心血,舍不得丢掉,老的时候装上画框来做记念。^_^ 想起来,好象又上了一次学。         很快,发现网上有高大上的TTF屏的STM32位机了!!如果我学会用了,那么我设计出来的机子又能黑多不少钱呢,还好,当时原子好像刷新了,于上高高兴兴上了淘宝买了MINI板,一打开光盘,傻了,泥马,这些带着 -> 符号慢天飞的是啥?? 为毛原子这家伙老喜欢用 * 这些无聊到极的变量??噢,原来叫指针,虽然周坚老师书上有教,但只是一个照面,还有结构体啥的,都以为是软件大猩猩才会用的东东,和我们硬件旺何干?所以都没用过。好吧,来也来了,硬着头皮啃吧,TM的,从8位机转成早大上的32位机还真的难啃,我啃了2个多月,终于有点成绩了,高高兴兴的又去黑钱去了。时间来到开始物联网的兴起的星星之火的时期,当我从网上买了并打开zigbee的箱子时,立刻将我吓呆了,草泥马,这个叫栈的东东是C写的吗?为毛我看不懂,硬着头皮看了两周,放弃了,投降了,只能说是会普通应用了,但里边是啥真心看不懂,没法做更深的开发,普通应用也高大上不起来呀,特别在工业的电磁环境。一直找不到方法,为毛这些C我看不懂呢??         接下来,我又开始折腾USB,各种无线的玩意,最后是上一年的WIFI,这次我切底投降了,又是我看不懂的C!!囧~~~~~~~~~~         这时,我觉得我要升级一下了,开始学手机肚子里那块芯片了,当时也不知道,他和STM有毛不同,只是觉得是贵一点的STM32罢了,这时,好就好在我没从其它地方入门,什么天嵌呀,什么的入门,一个很巧然的机会上了陶宝,见到有个叫朱老师的课程,说是物联网的,但里边基然有基础C...........还有C精讲,因为基础C不用钱,我下了 {MOD}来看,啊,我的天,立马喜欢上这个喜欢讲课经常扯蛋家伙的作风了,而且我发现基础C居然我还能捡回这么多东西,而且!!最重要的是这家伙讲出了C语言各种出处,怎么样来的,为什么要这样,原来指针是这么样的重要而结构体原来是这么的高大上,指针还能玩出花来~~~~~~~~~~~~最重要的是他说的一句话:我原来也是搞硬件的,但后来用linux后,我发现我压根就不会C!靠了,这不跟我一个鸟样感觉吗!!还有一句最值大我们大家认同的话,就是 难的没学会,就是因为简单的没学好!!NND,这不明明针对我吗??我C都没学好就去看人家的栈,不是找孽吗??         立马叫MM将他所有的视频买下来,当时他们的视频都还只录了个开头,就凭那两句说到心坎的话也值了!!         好了,在我没看C的视频之前,我列一些问题,看大家有没有同感:
        1:在STM32编程中,是不是有同学在局部变量中不习惯初始化,搞得摸明其秒变量变得都不是你要的东西??         2:我们一直点一键编译,不知道啥叫 链接,啥叫预处理,都不知他是啥东东,更不要说它和我们的代码有着各种重要的关系了。         3:大家知不知道volutile的重要性!!分分中在我们代码中出错了好多次我们都不知它出事了!!         4:在RTOS,UCOS中的复杂的代码里,大家是不是见到那些跟本看不懂的数据类型捉狂??         5:以为C不能面向对象。         6:你手头上的东东叫啥?SOC是啥?         7:知不知道,什么叫栈,堆,内存还有 代码段,数据段,bbs段,我们以前都不知他来搞麻的,但你学会后就知道了解它有多得要!         8:什么是静态链接库,动态链接库?对我们的工程有啥帮助??         9:#define  container_of (ptr, type, member)     ({const typeof(((type *)0)->member) * __mptr = (ptr);     (type *)((char *)__mptr - offsetof(type, member)); }) 看得懂不,反正一个月前我这个硬件旺是看不懂。
        .............................        还有很多很多,我就不一 一 列出来了。这些我以前起码都不关心的,当看完视频后,每了解一样东西,都是透心的爽!!发现8位单片机也可以跑大系统,当然,只是不值得而已,学了之后,看到STM32能跑上M,上10M的代码也明白什么回事了,真的对SOC内存有了重要的认识,操作C 就是在操作内存而已!!要学好单片机,就必须学好C!!不要象我,老是急着住前走,到头来困难越来越大!!C是一道过不了的坎!!         当你学好C,你就不要说其它高级语言难了,C都会了,C++,C#,JAVA会难吗??C这道坎一过!将面对对象和进程这些高级语言的概念了解了(真的只是观念而已,一顿饭的工夫就懂了)前边就是一马平川了。
所认,我强烈建议,你们要学好原子的板子,先啥都不干!先当自己不会C,从头刷起,怎么学,以下联接的这个姓朱的家伙绝对能帮你!!而且可以真的叫零基础!!你不要以单片机的态度去学,要以学C语言的心态去学,先忘记你手头上的单片机!!
                                {MOD}地址:http://86bd6d.l69.yunpan.cn/lk/cjVy3RAgfDufK#14304533229409919-0   密码:4ad7


你先从不要钱的基础开始,但精C一定要学,要高大上都在里边,我当时买的是68元,现在好象长了价,80个小时的课,从头爽到尾,真它娘的值了,累了还能听老师扯下蛋!
当你学完精C后,原子的板子和代码可以说是秒懂了,学习可以说几呼没有难度!你已经可以说我学过C了!!
上边所说的都是在linux的环境学的,我比较强应推荐大家搞开发的要重视linux ,因为我所知道的国外同行大点的系统都用linux,特别是灯塔国和欧萌。因为它有无可比似的好处:不用交保护费,连下载个正版ubuntu都可以耍流氓不给一分钱!!人家是叫你捐,不是叫你给,可以耍流氓,当然我想给,也给不了,因为他们只认英国的卡,我只耍流氓。         当你要上系统来开发时,小的RTOS已经不能再适合时,一定要上系统了,上什么系统?还用问,一定是linux!! 机子有会会买给洋大人,人家也找不到知识产权的棍子来打劫你!         原子的STM32学好后,可以上高大上的contex A系列了,那个扯蛋的朱老师有个已经录好的ARM裸机课程,也讲得相当的好,有单片机基础的人也相当好懂。这个就比C更容易了,就是应了那句话,难的学不会是因为简单的没学好!!我也在ARM的裸机课程里。裸机就是单片机,几乎没有开发的价值。但不了解它,就不会看懂接下来是uboot移值,没猜错的话就是精进C中的精进C,祥解Uboot的代码吧(因为这个课程我还没学到,连免费的都没开始听),好象刚开始录,价格是半价,大家如觉得可行也可以早点拿下,不过我认为你一但中了毒,几乎都会买下来的。因为这学完了后才能在liunx C中搞开发,从硬件到网络的最后一米,才能打通,这里才是我学的目的。看来还得学半年囧~~~~~~~~~~~~~~~~~~~         



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。