这是我13年前创作和发表在互联网上的文章,这么多年过去了,这篇文章仍然在到处传播。现在贴回Linuxer公众号。 全文目录: C语言嵌入式系统编程修炼之道——背景篇 C语言嵌入式系统编程修炼之道——软件架构篇 1.模块划分 2.多任务还是单任务 3.单任务程序典型架构 4.中断服务程序 5.硬件驱动模块 6.C的面向对象化 总结 C语言嵌入式系统编程修炼之道——内存操作篇 1.数据指针 2.函数指针 3.数组vs.动态申请 4.关键字const 5.关键字volatile 6.CPU字长与存储器位宽不一致处
学习初期最难找的就是找学习资料了,本贴精心汇总了一些嵌入式相关资源,包括但不限于编程语言、单片机、开源项目、物联网、操作系统、Linux等资源,并且在不断地更新中,致力于打造全网最全的嵌入式资料库。
大家在学C、C++ 的时候,老师多半会讲过:C语言是面向过程的编程语言,C++是面向对象的编程语言。但归根结底,面向过程还是面向对象,这是编程思想的差异,而不是语言的差异。笔者最近在看baresip源码,C语言也能写成面向对象。
51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。
大家好,我是泽奀,这篇博客我将说说关于51单片机知识介绍。在第一篇的时候我概述过C语言,没看的可以去看看[C语言]概述_打打酱油desu-CSDN博客(1) https://blog.csdn.net/weixin_52632755/article/details/119791540(2),分别是《C语言概述1》《C语言概述2》。之所以要讲下51单片机介绍,是因为相信也有很多人对单片机感兴趣吧,当然也有很多是想学但是不清楚,或者是高考报考有关于单片机的专业知识 电子工程师/工业控制/机电一体化,等。
1、了解交通灯的基本工作原理; 2、用Proteus模拟实现交通灯控制; 3、用Keil C51编程实现上述功能; 4、用Keil与Proteus联调。
使用的 Eclipse C/C++ 来进行操作。 如果不懂如何利用Eclipse操作的话,推荐看这两篇博客介绍。 Eclipse 进行Linux远程开发 Eclipse 远程Debug调试C程序
为什么入门首选C语言呢 C语言除了能让我们了编程的大门,也让我们了解到程序的运行原理,和计算机底层是如何交互的,这些底层的知识决定了你的高度,也决定了你的未来的职业生涯。 如果你想成为出类拔萃的人,只要你用心去学号C语言,你会发现当你再去学习别的语言的时候有,短时间内就能搞定一门语言。这是毋庸置疑的!说C语言是现代编程语言的开山鼻祖一点也不夸张。 大学期间,只要C语言是大部分专业的基础课,当时大一的自己还不知道这门课的重要性,没有好好学。现在有时间来恶补一下C语言,也算对自己的一种鞭策和提升吧。 世界编
想要写一个操作系统的人大部分都是带着兴趣玩,毕竟现在主流的操作系统windows,苹果系统,linux系统属于目前比较常见的系统,其中linux内核属于开源可以看到其全部的代码,很多研究操作系统都是以linux为参考的模型,毕竟开源的代码研究起来也方便,但是对于个人来讲要去写一个操作系统难度可想而知了,曾经有个北京的同事已经工作了十几年主要的精力就是在研究底层,是个疯狂的linux内核研究者只要是是家里没事就会呆在公司加班研究linux内核,有时候一起吃饭讨论研究linux内核的主要在哪块,他讲到其实linux内核已经不是当初设计的样子了,现在的代码的更新速度之快让人发指,在全球范围内真正对于核心内核代码具备修改能力的非常有限,而且已经被国外巨头公司收到自己的公司作为储备资源。
懂得嵌入式开发,必须要精通C语言算法 从事嵌入式软件开发多年,嵌入式开发未来前景也非常广阔,消费类电子产品大部分都属于嵌入式开发系列,嵌入式软件开发从开发角度分为三层,嵌入式软件底层开发,嵌入式软件框架层开发,嵌入式应用开发。但有些公司并没有把这些结构划分的这么清楚,可能应用层和框架层直接柔和在一起了,不同层次的开发技能的要求也会不一致,不能简单的认为C语言搞定了就能顺畅的做嵌入式开发了。
大家好,我是南橘,因为这段时间很忙,忙着家里的事情,忙着工作的事情,忙着考试的事情,很多时候没有那么多经历去写新的东西,同时,也是看了网上一些比较新颖的文章输出方式,自己也就在想,我是不是也可以这样写?于是乎,《JAVA今法修真》就出现了,我会保持更新,也希望大家能够喜欢。
曾经是某见的教学总监,我带出来的学生也有大几千了,基本都从事linux相关开发工作。现在在各行各业也基本都是翘楚,有的都成公司技术主管,带领几十人上百人团队。
很多刚开始学习C语言的小伙伴,对于这样一个熟悉而又陌生的名词,都是显得闻风尚胆。甚至对于程序员这样一个职业的第一印象都是格子衫,谢顶头,大概是这样的…
2、对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此。库只是一个接口,方便使用者使用而已。
初级8位单片机 以Intel公司首先推出的MCS-48系列单片机为代表。它以体积小、功能全、价格低等特点,赢得了广泛的应用,成为单片机发展过程中的一个重要阶段。
很多刚开始学习C语言的小伙伴,对于这样一个熟悉而又陌生的名词,都是显得闻风尚胆。甚至对于程序员这样一个职业的第一印象都是格子衫,谢顶头,大概是这样的...
这些问题可能都是,也可能都不是。通过这么多年学习总结发现,要想真正学好一门编程语言,需要知行合一,需要一个好老师辅导+一套完整循序渐渐的课程+配套做的练习+答疑交流才可以实现这个目标!
以后就将咱们一部分月赛的题目拿出来给大家练练吧! 题目描述 设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。设Wij 是 从供应商j处购得的部件i的重量,Cij 是相应的价格。 试设计一个算法,给出总价格不超过c的最小重量机器设计。 ′编程任务: 对于给定的机器部件重量和机器部件价格,编程计算总价格不超过d的最小重量机器设 计。 输入 第一行有 3 个正整数 n ,m和 d。接下来的 2n 行,每 行m个数。前n行是c,后n行是w。 输出 将计算出的最小重量,以及每个部件的
中国14亿人口,约8.54亿人使用互联网,人均使用时长高达4~5个小时。更多的人花更多的时间在互联网上,是一种生活方式的转变,也是经济新增长点的体现。顺势而为,才有可为。
零基础自学C语言,还是简单点的适合,用书本学习编程笔者给出以下几点建议,首先选择一本书就够了,不要一口气买一堆,这本还没研究完又切换到别的书本上去了。 现在推荐基本业内反响还可以的几本书: C pri
MCU是Microcontroller Unit的简称,中文叫微控制器,俗称单片机,是把CPU的频次与规格做适当缩减,并将内存、计数器、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,构成芯片级的计算机,为不同的应用场合做不同组合控制,诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。
描述: 本章以物联网以及工业控制入门学习的朋友为主,针对微控制器四大平台的一个概览,简单讲讲这些平台都有什么样的特点,能胜任什么样的任务,以及未来这些平台的发展趋势,最后谈谈学习这四大平台的切入点。
Beautiful Soup 简称 BS4(其中 4 表示版本号)是一个 Python 第三方库,它可以从 HTML 或 XML 文档中快速地提取指定的数据。Beautiful Soup 语法简单,使用方便,并且容易理解,因此您可以快速地学习并掌握它。本节我们讲解 BS4 的基本语法。
大家都知道C语言网(www.dotcpp.com)是一个集在线学习、训练、比赛、求职于一体的综合性编程学习网站。大家除了日常在网站上看视频学习、做题训练、写题解发博客以外,偶尔还有一些比赛可以参加,如我们网站每月的有奖月赛(什么,你还不知道?每月最后一个周六晚,快去比赛栏看看吧),以及其他线上比赛,只要是公开类型的,大家都可以随便参加。
用过几种编程语言写代码主要还是和自己的职业经历密切相关,不知不觉从业已经有十几年的样子,中间经历过三家公司,在每家公司有大的项目经历,也涉及到许多编程语言的编写,现在简单做过几个项目涉及到的编程语言,在这做个简单的分享。
通过滑动变阻器和ADC0832模块对电压值进行采样,反馈电压值通过数码管进行显示,电压范围为0-5V,如图所示表示电压为3.92V。
题目描述 有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。 输入 输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。 输出 对于每组输入数据,输出一个平均值序列,每组输出占一行 样例输入 3 2 4 2 样例输出 3 6 3 7 另外,有兴趣的同学还可以加入C语言网官方微信群,一起讨论C语言 有找密码或者其他问题也可以到里面找相关人员解
网上看了很多的嵌入式学习路线,有的比较片面,有的为了博人眼球东拼西凑,几乎把整个行业用得着用不着的技术都写上去了,没有侧重点,简直是劝退指南,还有的纯粹是打广告卖板子招生。
寄存器不用全部记住,更不能死记硬背,小代玩单片机多年,还是只记住了最常用的几个寄存器的名称,具体的位设置的什么,还是没记住。在编程时需要配置寄存器的时候,可以上网找,或者书上找别人配置的程序,稍加修改,再或者查找芯片数据手册,查看相关的寄存器的说明。死记硬背寄存器是最最下策的。每种单片机有几十上百个的寄存器,学的单片机系列多了,你记得了那么多来吗?
题目描述 最近Kingly对编码很感兴趣,于是从网上找了一些编码原则来对字符串做实验。由于Kingly一直很忙,所以希望你这位编程高手来替他解决这个问题。下面是编码原则:(1) 如果访问到字符A,W
变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则。
电子书网站Packt公布了其2016年技术提高报告。它提供的统计数据基于超过 11,000 名 IT 专业人士参与的关于 2016 年收入最高的编程语言的调研。它同时还介绍了流行的 web 框架和主题。
今天给大家带来一款MicroPython开发板的拆解和测评。所谓MicroPython也就是运行在单片机上的Python。Python在国外是一门非常热门的编程语言,近些年在国内也被发掘与追捧, Python的开放、简洁、黏合正符合了现发展阶段对大数据分析、可视化、各种平台程序协作产生了快速的促进作用。自Python3的发布到现在已有五六年的时间,从刚发布的反对声音到慢慢被接受与喜欢经过了太漫长的时间,然而可能也与国情与发展需求有着相当的关系。总之,越来越多人开始使用Python。
本次的题目正确率可是低到了一个境界呢!快来试试吧! 题目描述 正整数x 的约数是能整除x 的正整数。正整数x 的约数个数记为div(x)。例如,1,2, 5,10 都是正整数10 的约数,且div(10)=4。设a 和b 是2 个正整数,a≤b,找出a 和b 之间约数个数最多的数x 输入 输入2 个正整数a≤b,编程计算a 和b 之间约数个数最多的数。 输出 程序运行结束时,找到a 和b 之间约数个数最多的数是x,将div(x)输出 样例输入 1 36 样例输出 9 PS:如果你有想法或者想
大一的时候,我开始捣鼓用C语言做网络编程,你们知道的,就是socket、bind、listen、accpet、recv、send那一套玩意儿。
大家周一好 ,我是 Peter,今天给大家推荐几位嵌入式行业不错的原创技术博主,有需要的可以多看看! 一口Linux 公众号「一口Linux」号主彭老师曾就职于中兴等全球知名企业,曾任华清远见教学总监。彭老师精通Linux系统编程、计算机网络、ARM、Linux驱动、龙芯、物联网,已建立多个高质量粉丝群,耐心解答问题,在读者中有非常好的反响。《从0学Linux驱动第一期》视频共32期已经更新完毕,并发布于B站,ARM 0基础入门系列视频也正在更新中。 一口Linux / 原创文章汇总 一口Linux /
一 . 直角坐标机器人的定义及主要特点 机器人按ISO 8373定义为:位置可以固定或移动,能够实现自动控制、可重复编程、多功能多用处、末端操纵器的位置要在3个或3个以上自由度内可编程的产业自动化
任何职业都有其内在的底蕴,作为一个程序员需要具备的几个竞争力是啥,如何让自己做一个不过时并且一直保持市场竞争力的程序员,特别是一些入行还不是很长时间的程序员是要好好思考的事情。不能只顾埋头写代码,选择
首先,介绍下原理。下图为主控芯片和流水灯模块的原理图。流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯。相反,如果要LED灯熄灭,就要把P1口的电平变为高电平即可。要实现流水灯功能,我们只要将LED1~LED8依次点亮、熄灭,依始类推,8只LED变会一亮一暗的做流水灯了。
今天给大侠带来基于FPGA的电子计算器设计,由于篇幅较长,分三篇。今天带来第一篇,上篇,话不多说,上货。
该文介绍了如何利用C语言实现字符串的反转、检查字符串中的特定字符、字符串替换以及字符串比较等操作。同时,文章还介绍了如何使用C语言中的指针、数组和结构体等数据结构来实现字符串操作,并给出了相应的示例代码。
在 VS2015 下开发程序首先要创建项目,不同类型的程序对应不同类型的项目,初学者应该从控制台程序学起。 打开 VS2015,在上方菜单栏中选择“文件 --> 新建 --> 项目”:
说来也奇怪,N妹周围互联网同事最近纷纷开始学Python,N妹没跟上这波步伐,感觉就要被时代抛弃了?
单片机系统中常用的显示器有:发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5×8、8×8点阵等)。
如果你仍然觉得just so so,那好吧,你再看下面这个代码,简直就是艺术与代码的天作之合。
我是雪易网的开发者玩蛇的胖纸,当你看到这封信的时候,我想我已经离开易语言界很久了。
领取专属 10元无门槛券
手把手带您无忧上云