时间:2022-10-09 17:15:56 | 浏览:1608
大家好,我是华维的麦琪。
首先我们要思考两个问题!
1.学单片机之前要学什么?
2.C语言和单片机两者有什么关系呢?
提起这个就想起我08年开始学习单片机的各种弯路了。
08年我加入学校的电子实验室,为08年的全国电子大赛做准备。那年的电5子大赛分类3类,硬件设计类、单片机软件类、产品的调试动手类。
我选择的是软件类,刚开始我买了一本C语言书,独自学习了2个月,做了3本笔记,然后又学习了1个月的数字电路,到这个时候,我都快奔溃了,3个月过去了,还是一窍不通啊!
每当我准备放弃的时候,回想当初:自己要参加大赛并且获得名次!
在学校的日子每天都清闲得很,就抱着边玩边学的态度,不知不觉就把单片机的IO口、定时器、中断、串口通讯这些学会并且掌握。
那一刻,我恍然大悟,原来单片机开发也不是很难!!!
最近给学员上完课后,很多学员找我给他们推荐C语言相关的书籍:我猜想他们可能想和我当年一样,埋头苦干,学个几个月的C语言,把C语言吃透,再开始单片机程序开发!
其实单片机就是一个工具,在学习这个工具之前我们还是需要有别的知识作为铺垫。
比如说基本的数字电路基础和简单的C语言编程基础。
一、电路基础和C语言基础要学习的内容
01、数字电路基础需要学习什么
掌握电阻、电容,三极管的基本用法,掌握单片机的高低电平的概念基本上就够用了。
最好的学习渠道就是开发板的原理图,把开发板原理图搞懂基本上就能上手一些项目。
02. C语言编程基础
C语言基础的学习,必须要掌握一些基本的语法,和变量的定义。
具体的学习路径,可以到小破站找华维单片机编程比较系统全面,也是针对单片机来讲的。
学完单片机、电路基础、C语言的知识以后,就可以开始着手做一些项目了,前期先通过小项目开始,比如说电子时钟啥的。
二、C语言和单片机有什么关系?
下面再给大伙深入讲解下C语言和单片机的关系。
01.支持C语言和汇编来编写程序。
通过C语言来编写
C语言编写的程序,最终需要通过keil工具编译成单片机可以识别的.hex文件的过程:
C程序源码->C编译器->汇编代码->汇编编译器->机器码(.HEX 或.BIN)
02.通过汇编来编写
单片机的程序早期都是汇编代码,汇编代码最接近硬件底层的低级语言,运行的效率比较高。
但汇编语言很很多比较明显的缺点:不便阅读,移植性差,开发难度大等,随着技术的不断进步,大家就开始逐步的的使用C语言来代替汇编语言,(比较低端的芯片还是需要汇编来开发)。
所以,一般产品开发都是使用C语言,汇编一般是用来做很小的产品,或者单片机的启动文件。
三、做单片机开发,C语言基础学习到什么程度就可以开始了?
干货!对于刚入门的学员,大家学习单片机的一些基础就OK,下面我给大家简单的列举一下:
学习二进制,十进制、十六进制数据的概念和应用
C语言变量的定义和使用(unsigned,char,int,float,double)
数组的定义和应用
掌握if语句,while语句,switch 语句等
掌握break,contuine,goto 的用法
函数的定义和应用
掌握单片机C语言的运算符的应用:位运算符,关系运算符等
学习#if #ifndef #ifdef #endif的用法
学会include的使用,了解sfr,sbit,#define 的用法
这块我们华维单片机编程团队专门为入门的小伙伴录制了一套课程,这套课程是专门针对单片机来讲解。
帮助大家无缝对接到实际的单片机开发。
只要掌握了以上的C语言基础基本上就可以开干了。以我个人经验来说,建议先学习51系列单片机,再学习STM32单片机。
如果掌握了51单片机之后,小伙伴们就需要学习一下C语言的一些高级语法了
C语言结构体的定义和使用
C语言指针的概念,定义和应用
C语言枚举的应用
回调函数的定义 和使用
C语言的链表,队列算法,任务管理
以上这些高级语言是单片机C语言的一些精髓,需要有一定的基础。
这块我们华维也录制了整套课程,无偿分享给大家,大家可以跟我们拿。
华维单片机编程
有了这些基础,小伙伴们就可以展开STM32单片机的学习以及再单片机上跑系统,例如freeRTOS等。
下一篇,我们来讲讲c语言指针用法及实际应用详解。
文章来源:博客园丨 CharmchinC 语言的特点C 语言程序设计就是结构化程序设计,它的主要观点是采用自顶向下、逐步细分和模块化的程序设计方法,使用顺序、选择、循环三种基本控制结构来构造程序。世间万物都有两面性,C 语言既有简洁性、灵活
盘点一些值得学习的C语言开源项目,大多是曾经比较经典的案例,感兴趣的朋友可以了解一下!Libeventlibev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施。其以高效出名,它可以将IO事件,定时器,和信号统一起来
整理 | 章雨铭 责编 | 屠敏出品 | CSDN(ID:CSDNnews)上周《LINUX设备驱动程序第三版》的第一作者、LWN网络杂志创始人兼主编Jonathan Corbet发表了对于Linux内核的一些看法,他认为虽然内核项目总体发
学习嵌入式开发之C语言基础知识1 C语言简介C语言是一门面向过程的计算机编程语言,具有可读性好、易于调试、修改和移植,而代码质量与汇编语言相当;目前绝大数的嵌入式程序开发基本上都是采用C语言进行编写的。因此我们想要学好嵌入式就必须要先掌握C
C语言变量的存储类别介绍C语言中的逻辑运算符C运算符的优先级和结合性宏和函数的区别C语言 typedef 的两种用法C语言中符号#和##的作用C语言 printf 格式化输出的详细示例C语言和时间有关的函数示例C函数time和clock的计
随着互联网的发展以及编程技术的不断更新,编程语言的种类也是越来越多,甚至现在的话针对每一个互联网的领域,都有不同的适合它的编程语言。不同的语言是为了实现不同的目标而设计的。不过无论你是一个有经验的程序员,还是你是这个编程网络中的新手,有一
学习资料:
在互联网蓬勃发展的时代,有一类人做出了巨大的贡献,这一群人被大家称之为程序员,怎样才能成为一名优秀的程序员呢,为什么每一个程序员都需要学习C语言呢?就让我来跟大家分享分享:第一:相比较其他的编程语言(像C++,JAVA),C语言是个低级语言
随着互联网的发展以及编程技术的不断更新,编程语言的种类也是越来越多,甚至现在的话针对每一个互联网的领域,都有不同的适合它的编程语言。不同的语言是为了实现不同的目标而设计的。不过无论你是一个有经验的程序员,还是你是这个编程网络中的新手,有一
原文链接:https://baijiahao.baidu.com/s?id=1693215018575246509这是一个复杂的问题,结合在一起:事实,过时的事实,夸大的说法和根深蒂固的未经证实的信念。事实:-学习C比C ++容易得多:一个