首页 - 招生院校 > 华清远见的嵌入式培训怎样 过来人的亲身经验

华清远见的嵌入式培训怎样 过来人的亲身经验

发布于:2021-03-29 17:44:43 作者:admin

民营企业的培训机构,在完全市场监管的情况下,能跑起来,成本能这么高,说明他们真的有市场。

私立培训机构是有市场的,这意味着我们的公立培训机构(大学和职业教育)存在很大的问题。

华清远见的嵌入式培训怎样 过来人的亲身经验

比如嵌入式编程,写单片机,其实真正学过单片机的人都知道没那么神奇。本质上是把GPIO映射到寄存器或者内存地址(RISC外设是统一内存寻址)。说白了就是修改C语言中的几个变量。你觉得C语言给指针赋值很难吗?不是下面的代码吗?

* addr=1;* addr=1;

你会觉得这很难吗?

好了,那再看一个真实的例子——M3单片机操作这个管脚,然后贴上去(这个代码是原代码的提取部分,这个C语言头文件声明了整个系列单片机核心的外设基址)

你会觉得他很难相处吗?如果你没有学过单片机,只学过C,那么说你能看懂,说不难,都是假的。因为我也是。

#*!* { _ _ IOuint32 _ tCRL_ _ IOuint32 _ tCRH_ _ IOuint32 _ tIDR_ _ IOuint32 _ tODR_ _ IOuint32 _ tBSRR_ _ IOuint32 _ tBRR_ _ IOuint32 _ tLCKR} GPIO _ TypeDeftypedefstruct { _ _ IOuint32 _ tCR_ _ IOuint32 _ tCFGR_ _ IOuint32 _ tCIR_ _ iou int 32 _ tap B2 rstr;_ _ IOuint32 _ tAPB1RSTR_ _ IOuint32 _ tAHBENR_ _ iou int 32 _ tap B2 ENR;_ _ iou int 32 _ tap B1 ENR;_ _ IOuint32 _ tBDCR_ _ IOuint32 _ tCSR# ifdefstm 32 f10x _ CL _ iou int32 _ tahbr str;_ _ IOuint32 _ tCFGR2# endif/* STM 32 f10x _ CL */# if defined(STM 32 f10x _ LD _ VL)| | defined(STM 32 f10x _ MD _ VL)| | defined(STM 32 f10x _ HD _ VL)uint 32 _ treserved 0;_ _ IOuint32 _ tCFGR2# endif/* STM 32 f10x _ LD _ VL | | STM 32 f10x _ MD _ VL | | STM 32 f10x _ HD _ VL */} RCC _ TypeDef;# defineepriph _ BASE((uint 32 _ t)0x 40000000)/*!peripherabaseaddressinhaliasregion */# defineeahbperich _ BASE(perich _ BASE0x 20000)# definee a2 perich _ BASE(perich _ BASE0x 10000)# defineRCC _ BASE(AHBPERIPH _ BASE0x 1000)# defineRCC((RCC _ TypeDef *)RCC _ BASE)# definegePioA _ BASE(APB2perich _ BASE0x 0800)# definegePioA((GPIO _ TypeDef *)GPIOA _ BASE)RCC-GPIOA-CRH |=0x 000008 B0;((GPIO _ TypeDef *)GPIOA _ BASE)=1;

每个初学者看到这段代码都会想,这一堆定义的变量是怎么来的?为什么要声明一个__IOvolatile,什么是PERIPH _ BAS,为什么要给他赋值0x40000000,这个值是怎么来的(外设地址后面写,那么问题来了,外设地址为什么是这个数字?)为什么要GPIOA_BASE加0x10000到里面,为什么要强行转换成GPIO_TypeDef*,一个结构指针,为什么把这个结构变量的CRH和CRL赋值后可以点亮一个LED,这样我就可以做一个看起来像杀马特的流水灯了?

其实很简单的回答为什么会在这里

0x40000000是STM32F10X指定的外设起始地址,所有外设都以此地址为基址,然后按顺序排列。

然后你就可以算出GPIOA和STM32官方手册是否一致

其余RCC寄存器也是如此。APB2ENR上的上述位操作对应于以下位含义表

其实每一行代码都可以按照手册找到,但问题是很多初学者连手册都不知道怎么读,因为没有人指导我们怎么入门魔片单片机。是一套完整的知识体系,但学校只会给你读PPT,只告诉你以前C语言中如何分配指针地址。在学校课程设计中,C语言指针地址的赋值与单片机程序如何编写之间存在着巨大的知识鸿沟,而这种知识鸿沟很快被培训机构填补,这也是培训机构存在且成本可以很高的原因。但是培训机构的问题是零门槛。不管你有什么基础,他都会让你进去学习。其实每个人的知识水平和所掌握的知识体系是不一样的。所以同一培训机构的人可能差别很大。所以有人会说学了培训机制收获很大,也有人觉得学了什么都没学到,觉得培训机构在骗钱。相反,这个学位至少有一个高考门槛,虽然大学毕业后的水平差别很大

别,但是当年高考分数永恒不变。因此这也就是为什么企业宁愿招更高学历的人也不愿意招收低学历但是培训机构出来的人(因为培训机构出来的人没有一个统一公平的量化指标,比如高考分数这种的)

根据我和一些同样是电子专业的同学交谈(大部分是双非普通一本,虽然很多知乎er瞧不上这种同学,但是在二三线城市中双非普通一本已经超越全省五分之四的人了),他们上课老师从来没讲过这些。因为很多人都默认这些东西应该是自学,老师上课只讲基础,也就是模电怎么做小信号模型分析,怎么判断负反馈,数电怎么应用摩根定理等公式化简。上完这些,然后学写单片机,老师上课念几页PPT,然后上机实操做个演示,先点A按钮,再点B文本框,在输入C参数,复制粘贴几行书上的代码,下载上板,好OK了。你只要照着老师的操作依葫芦画瓢,最后流水灯做出来了,看起来狂拽酷炫屌炸天,老师也觉得OK给你个90分,这门课就算过了。

因为大学课程和实际就业脱轨太严重了。

我面试很多互联网企业,包括BAT,他们的面试官都会问我,为什么你来应聘前端,你不是做电子的嘛?其实换个角度来看:如果我是学CS计算机科学专业,难道就一定很适合做前端吗?毕竟计算机科学专业的课程体系里面也没有一门课叫前端开发啊。CS专业也都是学高数,数电,计组,OS,计网,算法,数据结构,难道这些课就和前端有什么关系吗?其实并没有。因为大学本来就不是职业教育学院,不是教你出去找工作的技能。

但是事实上大部分人读大学就是为了能够更好的找工作,这里就出现了矛盾和教学空缺,这些教学空缺就迅速被各种培训机构占领,他们可以借助信息差收取高昂的费用(因为你根本不懂编程,你也就不知道我的编程到底教的好不好,如果你学的不好,也会觉得是自己理解能力差的问题,和培训机构无关)

解决培训机构割韭菜和应届生的职业技能能力不足最好的办法就是合理调整大学的教学规划,提升职业教育的办学水平或者干脆合并职业技术学院和本科学校。而不是高考发挥不好的同学就应该去只学习学习职业技能而不注重理论(例如职业技术学院的软件技术是不学习很多CS本科基础课),而高考发挥还行,读了一本或者双一流就该只学理论而不学职业技能。平衡理论和职业技能才能让我们的大学诞生更多的优秀人才。而不是最终让那么多其实很聪明很有潜力的同学去公立大学浪费了大量教育资源和知识接受能力最好的青春时光,最后毕业等于失业还得被培训机构割韭菜。

展开阅读全文​

二维码

扫一扫关注我们

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。

本站部分文字及图片均来自于网络,如有侵权请及时联系删除处理,欢迎发送邮件

相关文章