![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
m0_46649594
这个作者很懒,什么都没留下…
展开
-
C语言为什么不会过时
01为什么C语言不会过时评价任何一门编程语言,都是招人骂的。永远是这样。就像是春寒料峭的季节, 街上穿棉袄和穿单衣的擦肩而过,双方一定是同时在心里出现了两个字:“傻逼!”这个在心理学上有个专业的名字:叫做“二逼”现象!那我为啥还要做这个挨骂的事呢?作为《C语言点滴》《drop of knowledge of C++》书籍的作者,《C语言新思维,第二版》的译者。我觉得我有责任系统的介绍一下这本语言,他的特点,还有他的未来。这个问题对很多刚刚踏入程序猿这个行业的新手至关重要。因为他们有深深的担忧,万一C语言就原创 2020-05-22 08:09:17 · 746 阅读 · 0 评论 -
电子设备雷击浪涌抗扰度试验标准
1、电子设备雷击浪涌抗扰度试验标准电子设备雷击浪涌抗扰度试验的国家标准为GB/T17626.5(等同于国际标准IEC61000-4-5 )。标准主要是模拟间接雷击产生的各种情况: (1)雷电击中外部线路,有大量电流流入外部线路或接地电阻,因而产生的干扰电压。 (2)间接雷击(如云层间或云层内的雷击)在外部线路上感应出电压和电流。 (3)雷电击中线路邻近物体,在其周围建立的强大电磁场,在外部线路上感应出电压。 (4)雷电击中邻近地面,地电流通过公共接地系统时所引进的干扰。标准除了模拟雷击外,还模拟变原创 2020-05-20 11:56:40 · 4146 阅读 · 0 评论 -
HAL ADC转换
HAL_ADC库函数使用(轮询方式)ADC轮询方式检测+CDC(VCP)传输查看,当按下按键后,ADC转换并发送一次。HAL_ADC_Start(ADC_HandleTypeDef* hadc); //开启ADC转换* hadc:&hadcHAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout); //等待转换完成* hadc:&hadcTimeout:超时时间HAL_ADC_GetValue(ADC_Hand原创 2020-05-20 11:13:17 · 970 阅读 · 0 评论 -
MODBUS通信概述
一、MODBUS通信概述MODBUS协议分为串行链路上MODBUS协议和基于TCP/IP协议的MODBUS 协议。串行链路上MODBUS协议有MODBUS ASCAII(字符串) 和MODBUS RTU两种 。200SMART所提供的MODBUS协议库能够支持MODBUS RTU通信。MODBUS RTU 是以16进制的数值进行发送 。MODBUS ASCAII是以ASCAII码的方式进行发送,一个数据采用RTU方式发送只需要一个字节,而用ASACII码发送需要两个字节,发送时间。PLC与变频器串原创 2020-05-20 08:43:13 · 998 阅读 · 1 评论 -
C语言
C语言是面向过程的,而C++是面向对象的C和C++的区别:C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。C与C++原创 2020-05-19 10:23:43 · 127 阅读 · 0 评论 -
C语言播放音乐代码
具体的播放代码是这样子滴:mciSendString(“open ThatGirl.mp3 alias a”, NULL, 0, NULL);//打开音乐mciSendString(“play a”, NULL, 0, NULL);//播放音乐open指令打开需要播放的音乐,alias后面制定了前面文件路径的别名,以后想要操作这个文件直接使用这个别名就行了,后面的三个参数平时,就记着写作NULL,0,NULL即可。第二条语句play指令后面接上面定义的别名,repeat表示歌曲循环播放。如果想要在音乐播放原创 2020-05-18 09:36:19 · 7226 阅读 · 1 评论 -
2020-05-18
现在来看看那些非C的语言,他们的长处都在于提高程序员的开发效率上。或者支持动态的列表,或者支持安全的列表。但是加入任何的中间层,加入任何的安全检验,它不可能比(基地址+偏移量+无检验)的方式更快。这个世界上不存在“开发容易,运行快”的语言,开发容易毕竟来源于对底层的一层一层又一层的包装。现在回答两个最普遍的问题:硬件这么便宜了,有必要让软件更快吗?有这种疑问的人大部分都是网吧的固定客户,他们理解的计算机只在电脑城,他们理解的计算只是游戏和播放硬盘中的小电影。不要玩个游戏开个挂就乐得不行不行的,别忘了还有全原创 2020-05-18 08:44:27 · 126 阅读 · 0 评论 -
2020-05-18
评价任何一门编程语言,都是招人骂的。永远是这样。就像是春寒料峭的季节, 街上穿棉袄和穿单衣的擦肩而过,双方一定是同时在心里出现了两个字:“傻逼!”这个在心理学上有个专业的名字:叫做“二逼”现象!那我为啥还要做这个挨骂的事呢?作为《C语言点滴》《drop of knowledge of C++》书籍的作者,《C语言新思维,第二版》的译者。我觉得我有责任系统的介绍一下这本语言,他的特点,还有他的未来。这个问题对很多刚刚踏入程序猿这个行业的新手至关重要。因为他们有深深的担忧,万一C语言就像Fortran,per原创 2020-05-18 08:42:32 · 165 阅读 · 0 评论 -
2020-05-16
STM32的ADC转换还是很强大的,它具有多个通道选择,这里我就不细说,不了解的可以自行百度,这里只是选取单通道,实现ADC转换。在文章开始之前,我说一下数据左对齐跟右对齐的差别,以前一直糊里糊涂的,记录下来以免以后自己忘记。12位二进制最大值为 0x0FFF 左对齐操作后的结果是 0xFFF0,右对齐后还是0x0FFF。反过来看 ,若寄存器里左对齐的数据值X (相当于实际数据*16,所以左对齐转换的值要/16才是实际的值),则X>>4才是实际的数据。而右对齐,则是数据保持不变,采集到多少就多少原创 2020-05-16 14:30:17 · 84 阅读 · 0 评论 -
2020-05-13
指针也需要合理的符号。np 仅仅只是作为指针 nodepointer 的助记符。如果一贯都遵从命名规范,那么很容易就能推断出 np 表示“节点指针”。在下一篇文章中会提到更多。同时在编程可读性的其它方面,一致性也是极其重要的。假使变量名为 maxphysaddr,则不要给同级关系的变量取名 lowestaddress。最后,我倾向于「最小长度」但「最大信息量」的命名,并让上下文补齐其余部分。例如:全局变量在使用时很少有上下文帮助理解,那么它们的命名相对而言更需要令人易懂。因此我称 maxphyaddr 作原创 2020-05-13 14:33:58 · 131 阅读 · 0 评论 -
2020-05-13
我们鼓励在编程时应有清晰的哲学思维,而不是给予硬性规则。我并不希望你们能认可所有的东西,因为它们只是观点,观点会随着时间的变化而变化。可是,如果不是直到现在把它们写在纸上,长久以来这些基于许多经验的观点一直积累在我的头脑中。因此希望这些观点能帮助你们,了解如何规划一个程序的细节。(我还没有看到过一篇讲关于如何规划整个事情的好文章,不过这部分可以是课程的一部分)要是能发现它们的特质,那很好;要是不认同的话,那也很好。但如果能启发你们思考为什么不认同,那样就更好了。在任何情况下,都不应该照搬我所说的方式进行编程原创 2020-05-13 14:32:23 · 72 阅读 · 0 评论 -
2020-05-13
什么是中断?比如说我正在厨房用煤气烧一壶水,这样就只能守在厨房里,苦苦等着水开——如果水溢出来浇灭了煤气,有可能就要发生一场灾难了。门外忽然又传来了铿锵有力的歌声,我最喜欢的天龙八部要开演了,听着水壶发出“咕嘟咕嘟”的声音,我清楚:除非等到水开,否则没有我享受人生的时候。这个场景跟中断有什么关系呢?在这个场景中,我是唯一具有处理能力的主体,不管是烧水、还是看电视,同一个时间点上我只能干一件事情。但是,在我专心致志干一件事情时,总有许多或紧迫或不紧迫的事情突然出现在面前,都需要去关注,有些还需要我停下手头的原创 2020-05-13 11:50:09 · 81 阅读 · 0 评论 -
2020-05-13
SMART的数据主要分为:l 与实际输入/输出信号相关的输入/输出映象区:¡ I:数字量输入(DI)¡ Q:数字量输出(DO)¡ AI:模拟量输入¡ AQ:模拟量输出l 内部数据存储区¡ V:变量存储区,可以按位、字节、字或双字来存取V 区数据¡ M:位存储区,可以按位、字节、字或双字来存取M区数据¡ T:定时器存储区,用于时间累计¡ C:计数器存储区,用于累计其输入端脉冲电平由低到高的次数¡ HC:高速计数器,独立于 CPU 的扫描周期对高速事件进行计数,高速计数器的当前值是只读值,仅可作为双字(32原创 2020-05-13 10:59:14 · 79 阅读 · 0 评论 -
2020-05-13
步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机原创 2020-05-13 10:52:35 · 58 阅读 · 0 评论 -
2020-05-13
读者:程序运行正确, 但退出时却 “core dump”了,怎么回事?问题程序: struct list { char *item; struct list next; }/ 这里是 main 程序 */阿一:main(argc, argv) { … } 缺少的一个分号使 main() 被定义为返回一个结构。由于中间的注释行, 这个 联系不容易看出来。因为一般上, 返回结构的函数在实现时, 会加入一个隐含的返 回指针, 这个产生的 main() 函数代码试图接受三个参数, 而实际上只有两个传入。读者:可以原创 2020-05-13 10:49:44 · 109 阅读 · 0 评论