最近在研究NB-IoT模组的AT命令,遇到<CR>、<LF>的相关描述,有些疑惑就去Google了下,发现还挺有意思的。 继续阅读“CR & LF的渊源”
C之不可回避的指针
指针是C语言永远也绕不过的话题,毕竟是C语言的精华所在。强行记忆指针的类型并没有多大的意义,只有完全理解一个复杂类型,融会贯通,举一反三,这样才能在实际使用中坦然处之。总结其原则为:始于变量名,合于优先运算符,逐步分析终得之。 继续阅读“C之不可回避的指针”
正弦信号发生器后记
实践是检验真理的唯一标准,虽不是放之四海而皆准的真理,但仍然具备充分的积极意义,对于电路设计亦是如此,甚至更具有现实价值。 继续阅读“正弦信号发生器后记”
初识NB-IoT
本文缘起于初次接触移远NB-IoT模块——Quectel_BC95,为了尽快形成NB-IoT的初步知识框架,穿梭于国内外各大网站及论坛,在纷繁复杂的资料中渐渐有些小体会。 继续阅读“初识NB-IoT”
C/C++内存管理详解
内存管理是C++最令人痛心疾首的问题,也是C++最有争议的问题,C++高手从中获得了更优的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的无限怨恨,但内存管理在C++中无处不在,内存泄露几乎在每个C++程序中都会发生,故想成为C++高手,内存管理这一关是必须要过的,除非放弃C++,转到Java或者.NET,它们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还放弃了C++超绝的性能。
伟大的Bill Gates曾经失言:
640K ought to be enough for everybody —— Bill Gates 1981
程序猿们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决方法就是发现所有潜伏的地雷并且排除它们,躲避是解决不了任何实质性的问题。 继续阅读“C/C++内存管理详解”
C之值得回味的结构体
面对大型C/C++程序时,只需观察其对struct的使用情况即可对其编写者的编程经验进行评估。由于大型C/C++程序势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用struct是区别一个开发人员是否具备丰富开发经历的标志。 继续阅读“C之值得回味的结构体”
二极管类别及作用简单小结
二极管最明显的特性即单向导电性,实际1N4001型硅整流二极管测量中,红表笔接二极管的负极,黑表笔接二极管的正极时,表针会动,说明二极管能够导电;然后将黑表笔接二极管负极,红表笔接二极管正极,此时万用表的表针根本不动或者只偏转一点点,说明导电不良。(万用表里面,黑表笔接的是内部电池的正极) 继续阅读“二极管类别及作用简单小结”
C之可重入函数 && 不可重入函数
嵌入式实时系统设计中,经常碰到多个任务调用同一个函数的情况。如果此函数当初不幸被设计成不可重入函数的话,那么不同任务调用该函数时可能修改其他任务调用该函数的数据,从而导致不可预料的后果。 继续阅读“C之可重入函数 && 不可重入函数”
入门级音箱DIY功放基础
一、常见 Hi-Fi集成功放
现今市面上常见的 Hi-Fi 集成功放,主要是以下三家公司的产品:
1、美国国家半导体公司(National Semiconductor),已被TI收购,代表产品有:LM1875、LM1876、LM3876、LM3886、LM4766等。
2、荷兰飞利浦公司(Philips),代表产品是TDA15xx系列,比较著名的有TDA1514及TDA1521。
3、意法微电子(SGS),和法国Thomson半导体合并,现为意法半导体(STMicroelectronics),比较著名的是TDA20xx系列及DMOS管的TDA7294、TDA7295、TDA7296。
国家半导体以及意法半导体的产品音色中性偏暖,飞利浦公司的产品则较为明亮。 继续阅读“入门级音箱DIY功放基础”