搜索
bottom↓
回复: 14

最近做工程的一点点感悟

[复制链接]

出0入0汤圆

发表于 2014-4-18 23:15:31 | 显示全部楼层 |阅读模式
        从大一开始学C语言到现在已经是大二了,在实际做工程的时候时候才知道课掌握课堂上老师讲的C语言知识是远远不够的,以致编程的时候屡屡碰壁。看似很简单的自认为理所因当的,不会出错的代码老是出现BUG,特别是程序写大的时候,程序调了几天都没调试好的话会很让人丧失斗志!最近在基于一个51的微型系统上做一些应用,用到NRF905无线模块,12864液晶,温湿度模块,采用的模块化编程代码就出现了让我崩溃的BUG。先是在温湿度模块的代码上出现BUG,调试了好久才知道是什么原因,采用模块化编程中有多个.c文件和.h文件,.c文件主要是用来写功能函数和定义变量的.h文件是用于声明对应.c文件的函数和一些相关宏定义的,我错把变量的定义也放到.h文件中去了。然后是再调试NRF905无线模块的时候BUG又来了!一个我已在.c里面定义得数组,在引用这个数组的时候编译器总是报错:_main.c(27): error C202: 'TxRxBuf': undefined identifier,当时我心里一直纳闷明明定义这个数组了啊,怎么还会出错?最终通过百度搜索到了本论坛上的相关帖子才知道:要在一个.c文件里面使用另一个.c文件的变量,需要在这个.c文件里面用extern声明,说明这个变量来自外部。在这里要感谢阿莫电子论坛!这些BUG对大牛们是小菜一碟,对像我这样正在入门的新手却是必须掌握的很基础的东西,深刻感受到做嵌入式对C不熟是步履维艰的,还有想要做一些高级应用最好是有一定数据结构的知识,我是电子信息工程专业的,专业没有开数据结构的课程,但在实际中做工程中特别是一些复杂一点的项目才感觉的数据结构真的很有用,多亏当时进实验室时老师要求我学习数据结构的知识。以后的路还很长,不懂的问题肯定还有很多,希望大牛们多多吐槽!

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入264汤圆

发表于 2014-4-19 00:54:45 | 显示全部楼层
小学弟,慢慢来。想当年,我们都是敲汇编过来的。只要坚持下来,就会有收获的。

出0入42汤圆

发表于 2014-4-19 01:12:54 | 显示全部楼层
我那些年还是幸运, 毕业的时候身边就一直坐着个牛人

出0入0汤圆

发表于 2014-4-19 07:40:48 | 显示全部楼层
编程的技术越高级,出的bug就越高级,当然低级还在出

出0入0汤圆

发表于 2014-4-19 11:49:48 | 显示全部楼层
本帖最后由 Charliexie 于 2014-4-19 11:50 编辑

我以前也是这么认为的,.c放函数和变量,.h放需要调用的模块函数名,可是最近我看的程序,有的直接把各个模块单独放在一个.h文件中,我编译下也是可以的。就是说,只留一个main.c文件,其它的模块都只用一个.h文件即可

出0入0汤圆

发表于 2014-4-19 14:29:16 | 显示全部楼层
比我以前学校的时候强!

出0入0汤圆

发表于 2014-4-19 14:46:03 | 显示全部楼层
羡慕啊,以后电子就当爱好使唤吧,这一行不能入门了,

出0入0汤圆

发表于 2014-4-19 20:18:04 | 显示全部楼层
同是大二的 顶

出0入0汤圆

发表于 2014-4-19 22:27:41 | 显示全部楼层
现在的单片机编程迫切需要一个框架,以及针对该框架的功能程序指导,驱动程序需要规范格式

个人感觉MCU编程的工程师都是在自己悟,悟出来的一般都是时间触发的模块轮训框架

出0入0汤圆

 楼主| 发表于 2014-4-19 22:41:55 | 显示全部楼层
1ongquan 发表于 2014-4-19 22:27
现在的单片机编程迫切需要一个框架,以及针对该框架的功能程序指导,驱动程序需要规范格式

个人感觉MCU编 ...

嗯!我入门新手,最近正在学一个叫MSOS的微型系统,向LINUX, UCOS高尚大系统现在还没有那水平

出0入0汤圆

发表于 2014-4-19 22:55:28 | 显示全部楼层
很支持9楼的观点.
我一直自学,身边没有出现过大牛,也是慢慢积攒下来的, ,现在回头看刚入门的代码,都不堪入目.
路很长,楼主要Hold住

出0入0汤圆

发表于 2014-4-20 10:00:48 | 显示全部楼层
ruan18278816371 发表于 2014-4-19 22:41
嗯!我入门新手,最近正在学一个叫MSOS的微型系统,向LINUX, UCOS高尚大系统现在还没有那水平 ...

框架只是一个骨骼,决定最后的完成体是爬行动物还是节肢动物

ucos在小应用里面不适用,这种OS是为了比较大型的项目使用的,里面的功能多也意味着复杂度提升,需要满足一定的规模才好体现其价值

单人小程序开发还是状态机最好,状态机就是一个框架

出0入0汤圆

 楼主| 发表于 2014-4-20 10:32:50 | 显示全部楼层
1ongquan 发表于 2014-4-20 10:00
框架只是一个骨骼,决定最后的完成体是爬行动物还是节肢动物

ucos在小应用里面不适用,这种OS是为了比较 ...

嗯嗯,目前状态机不是很理解,只知道这个OS是基于消息的,对消息的处理有状态机和函数指针两种方式

出0入0汤圆

发表于 2014-4-20 10:43:23 | 显示全部楼层
推荐楼主看一本书《深入理解计算机系统》 第二版,你会知道编译过程都是做了什么事或是如何进行编译!

出0入0汤圆

发表于 2014-4-20 11:36:44 | 显示全部楼层
受教了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 12:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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