![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
文章平均质量分 87
an520_
这个作者很懒,什么都没留下…
展开
-
嵌入式软件打log的一些心得
以前在H时见得太多因为日志不全导致的麻烦,前方的客户经理不断向客户恳求宽限时间,维护人员不断地在客户环境找出蛛丝马迹,后方领导也不断地调配资源来跟踪问题,后方测试人员不断地测试,尝试问题复现,后方开发人员就不断地看代码。因为程序员大多喜欢copy-paste,如果你不加文件名和行数,某程序员copy了你的代码,修改了点,出错了,到时候把你拉下水。日志是反映问题的,有不同紧急程序的问题,自然有不同的日志级别。6、操作数据库时,把相应操作的IP,端口,库,用户名,sql语句和错误打印出来。...原创 2022-08-10 13:38:53 · 637 阅读 · 0 评论 -
浅谈单片机Boot的几种自刷新方式
重新上电后,如图2-b,由于启动地址1的内容是在刷新开始就被更新了是有效的,程序会进入CB运行,但是CB不完整,必然运行出错,程序不会跳入ReBoot里,从而不能再刷新(即刷死)。如图4-b,当Sec1的逻辑检测到CB_ValidFlg有效时,即认为Boot刷新完成,则程序控制跳转入Sec2里,此时由于App(ReBoot)末尾的App_ValidFlg是无效的,程序并不会跳转入ReBoot里,接下来就可以刷入新的App了。即启动地址1起了Boot有效性标志的作用(最先擦,最后写),如图3-b所示。...转载 2022-08-08 18:45:00 · 1251 阅读 · 0 评论 -
学习单片机AD采样必知的十大滤波算法
我们都知道,单片机的主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。所以,今天将给大家介绍十种常见的滤波算法,希望这篇文章能对大家有所帮助。...转载 2022-08-08 13:58:07 · 3284 阅读 · 0 评论 -
C语言入门【详细】
由于18的二进制数是10010,我们将一个int类型变量赋值18,本质上是将这个变量的内存地址对应的32个bit位修改为00000000000000000000000000010010(未满31位,后面的数字用0填充为什么是31而不是32呢,后面会介绍)。读者请注意,标准的C语言并不支持上面的二进制写法,只是有些编译器自己进行了扩展,才支持二进制数字。4为二进制值11后面一个数,由于11的个位数1+1满2,需要进1位,而二进制值11的位数1+1又满2,所以位数加1,最终转换结果为100。...转载 2022-07-28 11:00:00 · 2101 阅读 · 0 评论 -
C语言实现发牌功能基本方法
当52张牌全部发放完毕,打印发牌的结果。中的4表示花色种类有四种,13表示每种有13张(13个编号),扑克牌的编号(名字)用字符表示,分别为{'2','3','4','5','6','7','8','9','0','J','Q','K','A'}('0'表示10)(PLAYER_NUMBER是玩家数量,4表示牌的花色种类有4种,13为某种花色的牌最多13张)这题实现起来还是比较简单的,只需定义两个多维的字符数组,第一个用来存放扑克的编号,第二个用来存放4个玩家的手牌。...原创 2022-07-25 11:28:11 · 2742 阅读 · 0 评论 -
零基础怎么学习单片机?
每个操作指令的执行都需要一定的执行时间,如果程序没有执行到该指令,则该指令的动作就不会触发,这样就会忽略许多快速发生的事件,例如方波频率检测的上升沿。中断的机理是比较容易理解的,但是什么时候打开中断,什么时候关闭、屏蔽中断,需要如何配置才能使能中断的某些功能,中断里要执行哪些程序,这些程序的要满足哪些要求就需要花些时间去理解与实践了。这个方案可以通过普通的数字集成电路实现,也可以通过PLC来实现,也可以通过CPLD或FPGA来实现,但是只有单片机的实现是最简单,成本也是最经济的。..............原创 2022-07-23 02:00:00 · 1649 阅读 · 0 评论 -
物联网安装调试员丨让“智慧”生活早日来临
随着工业物联网、智能家居、智慧城市等物联网产业的兴起,需要大量具备RFID、嵌入式、网络、传感技术知识,能够完成物联网产品的检查与维修、设备及附件的部署与组装调试、网络的检测与连接、配置数据参数以及网络环境的运行维护等工作的技术型和操作型人才。因此,为了能够更好地运用物联网产品为生产生活服务,熟练物联网相关技术的操作人员至关重要,也是物联网产业发展的中坚力量。职业定义物联网安装调试员的定义:利用检测仪器和专用工具,安装、配置、调试物联网产品与设备的人员。其工作任务就是要搭建数据互联的信息网络,并通过电子标签转载 2022-07-22 12:30:00 · 596 阅读 · 0 评论 -
毕业设计| 单片机自动分拣小车(上货/卸货/WIFI识别)
除此之外,STC89C52单片机具有以下标准功能4个外部中断,看门狗定时器,MAX810复位电路,16位定时器3个,全双工串行口,7向量4级中断结构一个。另外,根据输入方波的周期来判断旋转的角度,该参数t使用定时器0来计数,该单片机晶振计时为每次0.1ms,计数的次数决定参数t的周期,参数t的说明如下表所示。当单片机P1.0信号为“1”,左电机输出电路开关打开,P1.1输出信号“1”,P1.2信号“0”,OUT1口输出一个VCC高电平,OUT2输出低电平0V,左电机正转。方案一V-M直流调速系统。.....转载 2022-07-22 07:00:00 · 3495 阅读 · 0 评论 -
单片机外围器件学习攻略,小bai必看
还是帮老师做项目的时候(真心觉得多参与项目收获是非常多的),用到了LCD12864,后来我发现LCD12864和LCD1602的指令是类似的,而1602我之前就用它做过一个时钟,于是使用LCD12864的时候我非常的有信心。对了,光看资料是不够的,因为资料是非常凌乱的,你根本不知道从哪开始看,这个时候就很有必要买一本关于单片机的书,因为讲技术的书籍都是整理好的,你做什么模块,就看那一章节,边做实验边看书边看资料,学习是非常快的。如果是自己写的总结,最重要的就是4,其他什么的都可以不写。sbit是什么意思?.原创 2022-07-21 16:15:00 · 256 阅读 · 0 评论 -
单片机是如何工作的?
它就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件。如上图左所示一个存储器就象一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉,至于电荷在小格子里是怎样存的,就不用我们操心了,你可以把电线想象成水管,小格子里的电荷就象是水,那就好理解了。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的1234这样的数字,这样,我们的一个谜团就解开了,计算机也没什么神秘的吗。......原创 2022-07-21 12:00:00 · 303 阅读 · 0 评论 -
嵌入式工程师,用好C语言这一利器的三要素
比如我们要处理“猴子选大王”的经典问题一群猴子,手拉手排成一个圆,从任意一只猴子开始从1开始报数,当遇到要排除的数(预先设定)时该猴子退出该圈,从下一只猴子开始继续从1报数,如此反复,最终剩下的猴子便是猴子的大王。同时注意异常时的处理,比如上面两个if语句就是异常情况的判断,每种异常情况对应不同的返回值,这样便于程序过程的调试和数据的合法性。此时,p指向开始的“猴子”。a、数据获取,为了程序的运行,上面的问题要获得猴子的总数,从那只猴子开始和剔除的个数;比如本程序的链表指针的定义,p,s,q。...原创 2022-07-20 15:51:55 · 675 阅读 · 0 评论 -
C语言中长度为零的数组详解 (2)
因此我们可以很好的将该类型的结构体作为数据报文的头格式,并且最后一个成员变量,也就刚好是数据内容了.由于0长度数组是GNUC的扩展,不被标准库任可,那么一些巧妙编写的诡异代码,其执行结果就是依赖于编译器和优化策略的实现的.操作,而我们在使用的过程中往往在函数中返回了指向缓冲区的指针,我们并不能保证每个人都理解并遵从我们的释放方式。的时候,也就是0长度数组的时候,0长度数组作为数组名,并不占用存储空间。首先要说明的是,支持0长度数组的扩展,重点在数组,也就是不能用。...转载 2022-07-20 13:56:50 · 873 阅读 · 0 评论 -
C语言中长度为零的数组详解 (1)【文章结尾有资料】
长度为0的数组并不占有内存空间,而指针方式需要占用内存空间.对于长度为0数组,在申请内存空间时,采用一次性分配的原则进行;对于包含指针的结构体,在申请空间时需分别进行,释放时也需分别释放.对于长度为0的数组的访问可采用数组方式进行。...转载 2022-07-20 13:43:21 · 594 阅读 · 0 评论 -
一文掌握C语言数组使用(二)
四、数组作为函数参数①调用函数传参数组时,减少函数传数组时的成本问题(时间和空间)。因为传参时,需要临时拷贝,如果数组过大,可能会浪费资源,严重的话可能栈溢出。②数组元素降维成指向数组内部元素类型的指针。③对指针加一,加上所指向的类型的大小。1、一维数组看代码: 画图解析: 总结:(1)形参格式,例如int arr[ ]或者int *arr,两者等价。(2)形参元素个数可被忽略,并且建议忽略(有可能改变了实参的大小,这样比较方便)。或者也可以填写比实参元素个数大的值。(3)用sizeof()求数组元素个数转载 2022-06-29 18:45:00 · 85 阅读 · 0 评论 -
一文掌握C语言数组使用(一)
最近有不少同学询问有关数组的相关问题,相信学过C语言的同学都知道数组的重要性,今天就来给大家分享一下它的使用方法,干货较多,建议收藏观看哦。一、数组1、数组的基本概念数组:类型相同的数据元素的集合,是C语言中的一种构造数据类型,这些元素会顺序地储存在内存的某段区域。2、数组的特点(1)数组是一种引用类型数据,存放在内存中。(2)数组当中存放多个数据(元素),类型必须统一。(如果定义的是int类型,那么里面的所有元素都必须是int类型)(3)数组的长度在运行当中不允许改变。(定义的数组元素个数在运行的转载 2022-06-29 15:30:00 · 291 阅读 · 0 评论 -
C语言的核心和灵魂
提起C语言,大部分开发者很自然就会想到指针二字。没错,作为C的核心和灵魂,它的地位咱们就不再赘述了。今天,我们想跟大家讲的是指针中的两个特有名词:“悬空指针”和“野指针”。悬空指针C语言中的指针可以指向一块内存,如果这块内存稍后被操作系统回收(被释放),但是指针仍然指向这块内存,那么,此时该指针就是“悬空指针”。下面这段C语言代码是一个例子,请看:C语言中的“悬空指针”会引发不可预知的错误,而且这种错误一旦发生,很难定位。这是因为在 free(p) 之后,p 指针仍然指向之前分配的内存,如果这块内存暂时可以原创 2022-06-23 20:30:00 · 363 阅读 · 0 评论