侵权投诉

单片机初学者都会遇到的10个问题

玩转单片机 2020-08-05 10:28 次阅读

01

C语言和汇编语言在开发单片机时各有哪些优缺点?

汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。

C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。

对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROMRAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什幺动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在资源较少的单片机开发中,还是建议采用汇编语言比较好。

02

C++或汇编语言可以用于单片机,C++能吗?

在单片机开发中,主要是汇编和C,没有用C++的。

03

搞单片机开发,一定要会C吗?

汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。

而C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对系统硬件的控制。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的一个主流。用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。

综上所述,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。所以作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的C语言编程。

04

当开发一个较复杂而又开发时间短的项目时,用C还是用汇编开发好?

对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是最普遍的一种高级语言,但不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。如果对这些特性不了解,那调试起来就有的烦了,到头来可能还不如用汇编来的快。

05

8088和196芯片单片机教材,请问哪里可以找到?

有关这方面的教材,大学里常用的一本是《IBM-PC汇编语言程序设计》清华大学出版社出版的,在网上以及书店都是可以找到的。另外网上还可以搜索到很多其他的教材如:《微机原理及汇编语言教程》(杨延双 张晓冬 等编著 )和《16/32 位微机原理、汇编语言及接口技术》(作者:钟晓捷 陈涛 ,机械工业出版社 出版)等,可以在较大型的科技书店里查找或者直接从网上订购。

06

初学者到底是应该先学C还是汇编?

对于单片机的初学者来说,应该从汇编学起。因为汇编语言是最接近机器码的一种语言,可以加深初学者对单片机各个功能模块的了解,从而打好扎实的基础。

07

大三生,学了电子线路、数字逻辑、汇编和接口、C语言,但总是感觉很迷茫,觉好像什么都不会,怎么办?

大学过程是一个理论过程,实践的机会比较少,往往会造成理论与实践相脱节,这是国内大学教育系统的通病,不过对于学生来说切不可好高骛远。一般从大三会开始接触到一些专业课程,电子相关专业会开设相关的单片机应用课程并且会有简单的实验项目,那么要充分把握实验课的机会,多多地实际上机操作练习。平时可以多看看相关的电子技术杂志网站,看看别人的开发经验,硬件设计方案以及他人的软件设计经验。有可能的话,还可以参加一些电子设计大赛,借此机会2--3个人合作做一个完整系统,会更有帮助。到了大四毕业设计阶段,也可以选择相关的课题作些实际案例增长经验。做什么事情都有个经验的积累过程,循序渐进。

08

作为学生,如何学好单片机?

学习好单片机,最主要的是实践,在实践中增长经验。在校学生的话,实践机会的确会比较少,但是有机会的话,可以毕业实习选择相关的课题,这样就可以接触到实际的项目。而且如果单片机微机原理是一门主课的话,相信学校会安排比较多的实践上机机会。有能力的话,可以找一些相关兼职工作做做,会更有帮助。而且单片机开发应用需要软硬件结合,所以不能只满足于编程技巧如何完美,平时也要注意硬件知识的积累,多上上电子论坛网站,买一些相关杂志。可能的话,可以到电子市场去买一些小零件,自己搭一个小系统让它工作起来。

09

如何才能才为单片机的高手?

要成为单片机高手,应该多实践,时常关注单片机的发展趋势;经常上一些相关网站,从那里可以找到许多有用的资料。

10

8位机还能延续多久?

以现在MCU产品主力还是在8位领域,主要应用于汽车应用、消费性电子、电脑及PC周边、电信与通讯、办公室自动化、工业控制等六大市场,其中车用市场多在欧、美地区,而亚太地区则以消费性电子为主, 并以量大低单价为产品主流,目前16位MCU与8位产品,还有相当幅度的价差,新的应用领域也仍在开发,至少在目前8位的MCU还有一席之地。

原文标题:90%的单片机初学者,都会遇到的10个问题

文章出处:【微信号:mcu168,微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

许多C++开发人员则希望C语言灰飞烟灭?!

70年代初,贝尔实验室创建了C语言,它是开发UNIX的副产品。很快C就成为了最受欢迎的编程语言之一。....
的头像 嵌入式ARM 发表于 09-29 14:42 36次 阅读
许多C++开发人员则希望C语言灰飞烟灭?!

C语言中的短路现象

短路现象1 比如有以下表达式 abc 只有a为真(非0)才需要判断b的值;只有a和b都为真,才需要判....
的头像 嵌入式ARM 发表于 09-29 14:39 27次 阅读
C语言中的短路现象

如何实现对通信数据的CRC计算

前言 最近的工作中,要实现对通信数据的CRC计算,所以花了两天的时间好好研究了一下,周末有时间整理了....
的头像 嵌入式ARM 发表于 09-29 14:26 47次 阅读
如何实现对通信数据的CRC计算

了解内存:如何在嵌入式C语言中使用结构

处理器如何访问内存?了解有关C语言结构以及如何使用它们的更多信息。 本文将首先解释内存访问粒度的概念....
的头像 嵌入式星球 发表于 09-28 09:46 78次 阅读
了解内存:如何在嵌入式C语言中使用结构

C语言的100个经典算法免费下载

本文档的主要内容详细介绍的是C语言的100个经典算法免费下载。
发表于 09-28 08:00 22次 阅读
C语言的100个经典算法免费下载

使用Verilog硬件描述语言实现简易函数发生器的设计说明

简易函数信号发生器在电路实验和设备检测中具有十分广泛的用途。在基于QUARTUS2软件平台下,运用V....
发表于 09-27 16:41 13次 阅读
使用Verilog硬件描述语言实现简易函数发生器的设计说明

学习嵌入式C编程语言:了解联合数据对象

嵌入式C中struct与union的区别 在本系列的上一篇文章中,我们讨论了嵌入式C中的结构允许我们对不同数据类型的变量进行分组并...
发表于 09-27 15:55 202次 阅读
学习嵌入式C编程语言:了解联合数据对象

了解内存:如何在嵌入式C语言中使用结构

处理器如何访问内存?了解有关C语言结构以及如何使用它们的更多信息。 本文将首先解释内存访问粒度的概念,以便我们可以对处理...
发表于 09-27 15:45 101次 阅读
了解内存:如何在嵌入式C语言中使用结构

嵌入式C语言源代码优化方案 主要优化程序的执行速度

1、选择合适的算法和数据结构 选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入....
的头像 strongerHuang 发表于 09-27 11:45 136次 阅读
嵌入式C语言源代码优化方案  主要优化程序的执行速度

通过一些附加信息和有用的实现技术对C函数的探索

在本文中,我们将通过一些附加信息和一些有用的实现技术来结束对C函数的探索。 基本的C函数(例如,一个....
的头像 multisim 发表于 09-27 11:11 95次 阅读
通过一些附加信息和有用的实现技术对C函数的探索

如何得当使用C语言的特殊的用法

C语言有很多特殊的用法,如果这些特殊用法使用得当,会是你的代码变得更加有健壮,更加容易维护。 比如我....
的头像 strongerHuang 发表于 09-27 10:41 97次 阅读
如何得当使用C语言的特殊的用法

了解嵌入式C:什么是结构?

本文提供了有关嵌入式C编程中的结构的一些基本信息。在介绍了结构之后,我们将看一下这个强大的数据对象的一些重要应
的头像 嵌入式星球 发表于 09-27 09:59 66次 阅读
了解嵌入式C:什么是结构?

了解嵌入式C:什么是结构?

本文提供了有关嵌入式C编程中的结构的一些基本信息。 在介绍了结构之后,我们将看一下这个强大的数据对象的一些重要应用。然后...
发表于 09-27 09:24 202次 阅读
了解嵌入式C:什么是结构?

C++ Primer Plus的PDF的电子书免费下载

本书全面讲述了C语言编程的相关概念和知识。全书共17章。第1、2章学习C语言编程所需的预备知识。第3....
发表于 09-27 08:00 17次 阅读
C++ Primer Plus的PDF的电子书免费下载

C语言内存操作的陷阱!你踩过坑吗?

[table] [tr][td] 1、返回局部变量的地址,或者返回指向局部变量的指针 int *stackref() {     int val; &...
发表于 09-26 16:02 101次 阅读
C语言内存操作的陷阱!你踩过坑吗?

【大联大友尚安森美半导体感光芯片USB双目摄像头模组试用体验】敏感人群自动追踪系统开发

感谢主办方提供的双目摄像头提供测试。本项目利用双目摄像头模组+LattePanda Delta 432+NCS2神经棒部署openvino做一个敏感...
发表于 09-26 14:46 0次 阅读
【大联大友尚安森美半导体感光芯片USB双目摄像头模组试用体验】敏感人群自动追踪系统开发

C语言固件中指针的使用方法

有两个与指针关联的值。第一个是存储在指针本身中的存储地址,第二个是存储在该存储地址中的数据。要修改存....
的头像 multisim 发表于 09-26 11:38 113次 阅读
C语言固件中指针的使用方法

SPI总线驱动的C语言源代码详细概述

本文档的主要内容详细介绍的是SPI总线驱动的C语言源代码详细概述。
的头像 Wildesbeast 发表于 09-26 11:36 168次 阅读
SPI总线驱动的C语言源代码详细概述

I2C总线驱动的C语言源程序详细说明

 i2c 总线上单片机系统中常用到的总线技术这里给大家介绍一个I2C总线驱动的C51语言源程序。
的头像 Wildesbeast 发表于 09-26 11:07 177次 阅读
I2C总线驱动的C语言源程序详细说明

c语言中一些花里胡哨的写法

转自:嵌入式Linux 我觉得这是一个送分题,奈何知乎人才太多了,给出了各种古怪的写法,如果是做项目....
的头像 strongerHuang 发表于 09-25 14:39 123次 阅读
c语言中一些花里胡哨的写法

Redis抢红包项目

业务流程分析 功能拆解 新建红包 在 DB、Redis 分别新增一条记录 抢红包(并发) 「使用技术....
的头像 数据分析与开发 发表于 09-24 15:09 92次 阅读
Redis抢红包项目

如何学习单片机方法和步骤说明

学习单片机的动机不外乎有四种:一是为兴趣爱好而学,二是为专业而学;三是为饭碗而学;四是在工作中被逼而....
发表于 09-24 08:00 45次 阅读
如何学习单片机方法和步骤说明

单片机C语言模块化编程的实例说明

当你在一个项目小组做一个相对较复杂的工程时,意味着你不再独自单干。你需要和你的小组成员分工合作,一起....
发表于 09-24 08:00 108次 阅读
单片机C语言模块化编程的实例说明

C语言的主要特征是什么

C语言不仅是IT的必修课,也是所有理工科、甚至所有专业的必修课。它具有简洁紧凑、灵活方便、适用范围大....
的头像 STM32嵌入式开发 发表于 09-23 11:13 98次 阅读
C语言的主要特征是什么

基于C语言实现的贪吃蛇小游戏

定义一个坐标数组,存放的是蛇的每一节蛇身所在的坐标位置。这样就将移动蛇身的操作转换为移动数组的操作,....
的头像 STM32嵌入式开发 发表于 09-23 11:10 70次 阅读
基于C语言实现的贪吃蛇小游戏

执行大量的for循环及嵌套,数组结果溢出

[code]     for(k=0;k
发表于 09-23 10:40 0次 阅读
执行大量的for循环及嵌套,数组结果溢出

ARM嵌入式学习知识图谱-C语言入门系列文章

想要做ARM开发,C语言绝对是重中之重,在这方面是是没有捷径可以走的,这篇文章为大家收集了论坛的优秀C语言初级文章,希望...
发表于 09-23 10:05 303次 阅读
ARM嵌入式学习知识图谱-C语言入门系列文章

单片机程序的编写方法

学习单片机最主要的是学习写程序的方法,程序的功能千变万化,是学不完的,只有掌握了一定方法,才能用这种....
发表于 09-22 17:17 249次 阅读
单片机程序的编写方法

HarmonyOS应用开发-API参考

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软...
发表于 09-22 15:14 101次 阅读
HarmonyOS应用开发-API参考

C语言内存操作有哪些陷进

如从stdin读取一个int变量时,scanf(“%d”, &val);是正确用法,若误写为scan....
的头像 嵌入式ARM 发表于 09-22 14:45 173次 阅读
C语言内存操作有哪些陷进

步进电机综合控制的C语言程序和工程文件免费下载

本文档的主要内容详细介绍的是步进电机综合控制的C语言程序和工程文件免费下载。
发表于 09-22 08:00 26次 阅读
步进电机综合控制的C语言程序和工程文件免费下载

什么是嵌入式_如何入门和提高嵌入式

因为首先,嵌入式有不少组合名词,例如嵌入式系统,嵌入式软件,Linux嵌入式,Android嵌入式,....
发表于 09-21 15:00 175次 阅读
什么是嵌入式_如何入门和提高嵌入式

TIOBE已公布2020年9月的编程语言排行榜

TIOBE 每个月都会公布一次编程语言的排行榜,这份排行榜排名基于全球技术工程师、课程和第三方供应商....
的头像 玩转单片机 发表于 09-21 14:13 834次 阅读
TIOBE已公布2020年9月的编程语言排行榜

嵌入式C语言源代码优化方案(非编译器优化)

选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多....
的头像 嵌入式ARM 发表于 09-21 11:55 286次 阅读
嵌入式C语言源代码优化方案(非编译器优化)

C语言程序设计全套培训课件免费下载

本文档的主要内容详细介绍的是C语言程序设计全套培训课件免费下载包括了:第1章 C语言概述,第2章 程....
发表于 09-21 08:00 20次 阅读
C语言程序设计全套培训课件免费下载

100个经典的C语言程序免费下载

本文档的主要内容详细介绍的是100个经典的C语言程序免费下载。
发表于 09-21 08:00 47次 阅读
100个经典的C语言程序免费下载

如何使用C语言实现PID控制算法

最近两天在考虑一般控制算法的 C 语言实现问题,发现网络上尚没有一套完整的比较体系的讲解。于是总结了....
发表于 09-21 08:00 41次 阅读
如何使用C语言实现PID控制算法

浮点数在内存中的存储

浮点数在内存中的存储和整数不同,因为整数都可以转换为一一对应的二进制数据。而浮点数的存储是由符号位 ....
的头像 嵌入式ARM 发表于 09-20 10:52 119次 阅读
浮点数在内存中的存储

C51语言编程基础教程之Keil µVision3的使用说明

单片机应用系统日趋复杂,对程序的可读性、升级与维护以及模块化要求越来越高,对软件编程要求也越来越高,....
发表于 09-17 17:49 68次 阅读
C51语言编程基础教程之Keil µVision3的使用说明

写出高效的嵌入式C程序

编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。 ...
发表于 09-17 11:00 297次 阅读
写出高效的嵌入式C程序

C语言的入门学习50个实例设计资料说明

本文档的主要内容详细介绍的是C语言的入门学习50个实例设计资料说明。
发表于 09-17 08:00 30次 阅读
C语言的入门学习50个实例设计资料说明

汉明码纠错的基本原理及优化解决方案

我们也要看到,这样处理后提高了汉明码对突发干扰差错的纠错能力,却牺牲了对随机干扰纠错能力。因为这样对....
的头像 电子设计 发表于 09-16 17:52 280次 阅读
汉明码纠错的基本原理及优化解决方案

STM8 C语言精品编程100例

发表于 09-16 15:53 226次 阅读
STM8 C语言精品编程100例

关于编程的那些事

来自公众号:Java建设者 为什么这本书叫做龙书(Dragon book)? 这本书很有意思,它的书....
的头像 算法与数据结构 发表于 09-15 11:47 141次 阅读
关于编程的那些事

延时函数的C语言源代码免费下载

本文档的主要内容详细介绍的是延时函数的C语言源代码免费下载。
发表于 09-14 08:00 38次 阅读
延时函数的C语言源代码免费下载

单片机常用的C语言算法有哪些?

是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么....
的头像 玩转单片机 发表于 09-13 09:49 408次 阅读
单片机常用的C语言算法有哪些?

什么是段错误?

来源:聚优致成 一、什么是段错误?一旦一个程序发生了越界访问,cpu 就会产生相应的保护,于是 se....
的头像 inr999 发表于 09-11 14:04 223次 阅读
什么是段错误?

编程入门先学什么?c++语言入门大神先带你入这个群感受一二

C++经过多年发展,从C++98到C++03,再到C++11-》C++14-》C++17以及最新的C....
的头像 算法与数据结构 发表于 09-11 09:58 278次 阅读
编程入门先学什么?c++语言入门大神先带你入这个群感受一二

C语言函数的回调函数

来源:嵌入式客栈 1 什么是回调函数?首先什么是回调呢? 我的理解是:把一段可执行的代码像参数传递那....
的头像 inr999 发表于 09-11 09:57 378次 阅读
C语言函数的回调函数

如何避免C库导致缓冲区溢出

来源:嵌入式ARM C中大多数缓冲区溢出问题可以直接追溯到标准 C 库。最有害的罪魁祸首是不进行自变....
的头像 inr999 发表于 09-11 09:37 136次 阅读
如何避免C库导致缓冲区溢出

C语言里extern "C" 是什么意思?

通常用于C++和C混合编程的时候,为了防止C++的编译器在编译C文件的时候出现错误。
的头像 嵌入式ARM 发表于 09-07 11:09 371次 阅读
C语言里extern "C" 是什么意思?

单片机的简介和C语言应用入门教程说明

单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机。单片机....
发表于 09-07 08:00 35次 阅读
单片机的简介和C语言应用入门教程说明

单片机的外部结构和C语言编程基础说明

对于51系列单片机,现有四种编程语言支持,即汇编、pl/m,c和basic通常附在pc机上,是初学单....
的头像 Wildesbeast 发表于 09-06 11:27 483次 阅读
单片机的外部结构和C语言编程基础说明

DS18B20的C语言驱动程序

本文档的主要内容详细介绍的是DS18B20的C语言驱动程序。
的头像 Wildesbeast 发表于 09-06 10:53 562次 阅读
DS18B20的C语言驱动程序

AM12864点阵液晶屏的C语言测试程序

本文档的主要内容详细介绍的是AM12864点阵液晶屏的C语言测试程序。
发表于 09-06 10:53 78次 阅读
AM12864点阵液晶屏的C语言测试程序

硬件设计师的10个C语言技巧

硬件设计师最常见的工作内容是通过写代码来测试硬件。这10个C语言技巧(C语言仍然是常见的选择)可以帮....
的头像 FPGA之家 发表于 09-05 11:22 188次 阅读
硬件设计师的10个C语言技巧

汇编语言:一个函数的编译器之旅

我是一个函数,名叫 str_upper,我可以把输入的字符串从小写变成大写。不信你看,我长这样:
的头像 如意 发表于 09-04 11:48 229次 阅读
汇编语言:一个函数的编译器之旅

详谈命令式代码和声明式代码的区别和编码风格

你的日常工作中应该使用哪种编码风格?让我们讨论一下你应该选择哪个以及为什么。在日常工作中,你应该努力....
的头像 如意 发表于 09-04 10:54 158次 阅读
详谈命令式代码和声明式代码的区别和编码风格

单片机处理多个任务程序框架设计

MultiTimer 是一个软件定时器扩展模块,可无限扩展你所需的定时器任务,取代传统的标志位判断方....
的头像 嵌入式ARM 发表于 09-03 17:52 1024次 阅读
单片机处理多个任务程序框架设计

嵌入式系统简易版本的printf满足自己的需要

嵌入式中,调试手段通常有两种,一是远程gdb,一是直接printf。如果是调试自己玩的小板子,用gd....
的头像 电子设计 发表于 09-03 17:37 372次 阅读
嵌入式系统简易版本的printf满足自己的需要