
单片机C语言问题
我是搞硬件的,完全没有C语言基础,不过单片机的汇编语言已经很熟悉了。两年中做了不少产品(已经在市场上使用),各个模块基本也都有用过,当时因为是业余,初学时为了有个好基础就...
我是搞硬件的,完全没有C语言基础,不过单片机的汇编语言已经很熟悉了。两年中做了不少产品(已经在市场上使用),各个模块基本也都有用过,当时因为是业余,初学时为了有个好基础就选择了汇编,后来就给自己找借口说'C代码执行效率低,实时性不好’,而没有接触C语言,但是现在当碰到需要复杂些的计算和逻辑时,码程序和修改程序太麻烦了,非常羡慕C语言(这方面是C的优点了吧?),所以想学C语言编程,
(不好意思,罗嗦半天了,问题才开始了:-D)
因为没有一点C基础,一般的单片机C编译器资料都是按读者了解标准C语言的基础上编写的,让我这个小白看的一头雾水,非常恼火,但是因为业余,不太想去也没有过多时间去学习完整的标准C语言,请问我这种情况该怎么办?(标准C一定要学吗?我总是认为单片机C只是标准C的一个很小部分,不是吗?)请各位指点,感谢。
非常感谢大家的热心回复,通过这几天的摸索,已经写出第一个C程序,并投入使用了。这里发表一下菜鸟对C语言写单片机的一些看法:首先第一,计算真的非常简单了,汇编写计算就像在解方程,C就只要将方程式写出来就可以了。。其次,是判断,特别是多条件判断,也简单了很多。通过生成的汇编代码来看,很多地方优化的还是很非常不错,没有相像的那么烂^_^;,,但也就一些不尽人意的地方,首先是位操作,直接定义位变量还好了,但是当为一个变量定义位变量就变得非常不自在了,还要将那个变量先定义绝对地址!其次是会出一些莫名其妙的问题,而且查找起来非常费劲。(可能是我写的不对,但是已经检查很多遍,应该没问题)。现在知道为什么要有调试器了,汇编代码有问题查起来方便多了(有时候查到不好改,呵呵),还有就是使用到绝对地址跳转不如机器语言汇编好使,,^_^。 正如,这一生注定灌水 师傅所说,在有些地方还是汇编好用,算是各有优势吧,混合编程绝对是一个好办法。 还有C编译器一般都带有很多官方写好的库函数,用起来真的非常爽。。再次感谢大家的回答,,谢谢。 展开
(不好意思,罗嗦半天了,问题才开始了:-D)
因为没有一点C基础,一般的单片机C编译器资料都是按读者了解标准C语言的基础上编写的,让我这个小白看的一头雾水,非常恼火,但是因为业余,不太想去也没有过多时间去学习完整的标准C语言,请问我这种情况该怎么办?(标准C一定要学吗?我总是认为单片机C只是标准C的一个很小部分,不是吗?)请各位指点,感谢。
非常感谢大家的热心回复,通过这几天的摸索,已经写出第一个C程序,并投入使用了。这里发表一下菜鸟对C语言写单片机的一些看法:首先第一,计算真的非常简单了,汇编写计算就像在解方程,C就只要将方程式写出来就可以了。。其次,是判断,特别是多条件判断,也简单了很多。通过生成的汇编代码来看,很多地方优化的还是很非常不错,没有相像的那么烂^_^;,,但也就一些不尽人意的地方,首先是位操作,直接定义位变量还好了,但是当为一个变量定义位变量就变得非常不自在了,还要将那个变量先定义绝对地址!其次是会出一些莫名其妙的问题,而且查找起来非常费劲。(可能是我写的不对,但是已经检查很多遍,应该没问题)。现在知道为什么要有调试器了,汇编代码有问题查起来方便多了(有时候查到不好改,呵呵),还有就是使用到绝对地址跳转不如机器语言汇编好使,,^_^。 正如,这一生注定灌水 师傅所说,在有些地方还是汇编好用,算是各有优势吧,混合编程绝对是一个好办法。 还有C编译器一般都带有很多官方写好的库函数,用起来真的非常爽。。再次感谢大家的回答,,谢谢。 展开
15个回答
展开全部
当然要先学好标准c,因为你先要学习的不仅是语法,而是c的架构和编程习惯与思想。c与汇编当然不同,就像不学123怎么学微积分
所以静下心找个周末好好看看书,我当年期末考试突击c语言,看了两天得了85,准备c语言二级等级考试的时候看了两个星期,笔试得了91,当然你不能像我一样只为考试,看两个星期没必要,看两天就上机实践才是真正的程序员应该做的。不动就上网查,基本不用问别人,两周就能初步了解并使用
用keil和proteus进行联调以辅助实践,看书必选谭浩强的c程序设计,关于联调请上网查询
所以静下心找个周末好好看看书,我当年期末考试突击c语言,看了两天得了85,准备c语言二级等级考试的时候看了两个星期,笔试得了91,当然你不能像我一样只为考试,看两个星期没必要,看两天就上机实践才是真正的程序员应该做的。不动就上网查,基本不用问别人,两周就能初步了解并使用
用keil和proteus进行联调以辅助实践,看书必选谭浩强的c程序设计,关于联调请上网查询
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2022-05-05 广告
选择arm开发板,可以参考一下几个点:1、确定一种CPU,去了解其核心架构,CPU资源有哪些,一些芯片厂商都会有说明的,可以去它们网站上看看;2、确定要使用什么操作系统,比如Linux啊,安卓这些等等;3、确定开发或者学习要用的哪些接口,比...
点击进入详情页
本回答由浙江启扬智能科技有限公司提供
展开全部
C语言也不难,如果阁下肯花20小时,把C语言最基本的东西弄懂,肯定没有什么问题。
我觉得单片机开发中C语言用到最多的几个部分
基础知识:比如数据类型,运算符,格式转换
顺序控制 if语句 switch语句
循环控制 while语句 for语句
数组
指针
其他一些C语言中的东西单片机上用不了,也就大概了解一下就行了。。。
我觉得单片机开发中C语言用到最多的几个部分
基础知识:比如数据类型,运算符,格式转换
顺序控制 if语句 switch语句
循环控制 while语句 for语句
数组
指针
其他一些C语言中的东西单片机上用不了,也就大概了解一下就行了。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该先学标准C,一般单片机的C语言语法部分同标准C,单由于应用环境不同,所以增加了一部分内容。两者是不兼容的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C 的确是没有汇编快,不过像你所说的,开发复杂逻辑用 C 比较方便。并且你在开发产品的时候,除非运行效率不达标,不然建议用 C。这使得你的开发效率和维护效率会大大提升,更何况在 C 里也可以嵌入汇编。如果你想在某些逻辑上使用汇编还是可以的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的情况和我初学时是一样的,当时只会用汇编编写程序,反正是业余吗,感觉很好,但后来发现汇编的可读性和移值性太差,刚写完的程序就不知是什么意思了,我开始学C51编程,我没有系统的学习C语言,我只是完整的学完了<电子制作>某一年的(好像是06年)连载讲座,而后我从网上下了许多C51源程序,进行研究并进行改写移植,很快我掌握了C语言的编程方法。而且尝到了C语言编程的甜头了。
另外说明一下,之前我对C语言一窍不通,英语水平基本不懂。
另外说明一下,之前我对C语言一窍不通,英语水平基本不懂。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询