51单片机C语言需要学习哪些知识?


答主从事嵌入式、单片机开发工作有几年了 。负责硬件电路的设计和程序的编写调试等 。所以结合自身的情况给与回答 。
1.单片机编程与PC编程不同
单片机C语言和PC编程时存在很大区别的 。单片机C语言编程是偏向于硬件的 。在编程时接触更多的是单片机的寄存器的设置、硬件端口的控制、硬件逻辑的设计 。这与PC编程区别很大 。单片机编程所面对的对象是以单片机为核心的主控板、控制板 。需要天天待在实验室 。搭建测试环境测试代码 。

51单片机C语言需要学习哪些知识?

文章插图
2.单片机编程需要学习哪些内容
要懂单片机的编程 。首先要懂单片机 。懂单片机的寄存器的配置方法 。能从单片机的datasheet和编程手册上看懂寄存器如何配置才能实现自己所需要的功能 。比如控制板要输出占空比可变的方波 。如果用单片机的片上资源实现PWM 。需要配置相应的寄存器 。可能涉及到时钟周期的设置、外设时钟的使能、GPIO复用功能的配置、定时器的配置、预装初值的计算等 。
【51单片机C语言需要学习哪些知识?】
51单片机C语言需要学习哪些知识?

文章插图
要懂单片机的编程 。其次要懂硬件设计 。前面提到过 。单片机编程的对象还是以单片机为核心的控制板 。控制板要实现功能需要硬件的支持 。比如要设计一个单片机驱动电路 。在编程时就要懂得给高电平继电器动作 。还是给低电平动作 。所以三极管或者mos管如何工作一定要清楚 。用程序控制LED灯 。该给高电平还是低电平?这些都要知道 。
51单片机C语言需要学习哪些知识?

文章插图
要懂单片机的编程 。要懂常用的通讯协议 。单片机要实现通讯功能 。需要相应的硬件接口走相应的通讯协议 。比如常用的IIC 。SPI 。RS232,RS485 。CAN等 。这些都是单片机系统中常用的通信方式 。所以这些通讯方式的编程一定要有所了解 。
51单片机C语言需要学习哪些知识?

文章插图
3.单片机C语言编程该如何学习
要学好单片机C语言编程需要多加练习、多做项目、多调试 。在初学阶段最好买一块适合自己的开发板 。前期多学习配套的例程 。之后要自己根据板子上的硬件资源实现自己想要的功能 。
结合这么多年的工作经历 。我还是感觉单片机的编程应该是硬件的范畴 。就我从事过的几家公司来看 。大多数公司还是把硬件跟编程放在一起 。只有很大规模的公司才软硬分开 。

其他观点:
没有用C语言很多年了 。当时学习它的过程有点忘记了 。我只能说说我比较印象深刻的 。对于单片机 。中断 。调度 。时钟周期 。寄存器 。模数转换 。外围电路等基本都要很清楚的 。这样才能做到知其然且知其所以然 。为了以后自己能创新 。而不仅仅是做个码农打好基础 。那么计算机原理 。数字电路 。操作系统这些基础课是要学好的 。后面再具体去精通C语言编程吧 。

    推荐阅读