摘要:MQTT协议简介 MQTT 是一个基于发布/订阅模式的消息传输协议。它具有轻量级、开放、简单,易于实现,通信带宽要求低等特点。这些特点使得它对机器与机器的通信(M2M)以及物联网应用(IoT)来说是很好的选择。它还被应用到手机APP和Web应用中。 MQTT于1999年由Andy Stanford- 阅读全文
posted @ 2019-05-28 19:12 lulipro 阅读(58695) 评论(5) 推荐(1) 编辑
摘要:const与指针 const和指针会形成2种不同性质的组合形式:const修饰指针本身 与 const修饰指针指向的那个内存数据。在《C++ Primer》一书中作者使用顶层const和底层const这2个术语来描述这2种情况。前者就是所谓的顶层const,而后者就是底层const。下面用代码列举了 阅读全文
posted @ 2018-12-20 22:01 lulipro 阅读(1157) 评论(0) 推荐(1) 编辑
摘要:环境介绍 系统:win10 64位 IDE:VS 2017 Community FLTK版本:1.3.4-2 下载FLTK 截止到本文编写,FLTK的最新稳定版本是1.3.4-2。我们从官网(www.fltk.org)下载到它的源码包。如下图: 我把它解压到D:\FLTK目录下: 编译FLTK FL 阅读全文
posted @ 2018-12-14 20:18 lulipro 阅读(5561) 评论(1) 推荐(2) 编辑
摘要:问题由来 我一直使用U盘,UltraISO软碟通和msdn原版镜像来装系统。最近在把Win10 1709升级为1803时遇到了问题。同样也是使用UltraISO刻录镜像到U盘的方法安装的,这次从U盘启动安装时,却报了下面这个错。心里在想:这是什么幺蛾子~? 原因是什么? 从错误弹窗可以看出,是由于写 阅读全文
posted @ 2018-11-15 10:25 lulipro 阅读(34575) 评论(0) 推荐(1) 编辑
摘要:简介 C风格的字符串其实就是特殊的 char 数组。特殊在于,数组中至少有一个 '\0' (其ASCII码值为0)空字符元素来作为字符串结束的标志。否则,这个数组只能看做是字符数组,而不能看做是字符串。C处理字符串的标准库string.h,以及其他的字符串处理函数,都建立在这种约定上,所以如果不满足 阅读全文
posted @ 2017-12-17 17:29 lulipro 阅读(1661) 评论(0) 推荐(1) 编辑
摘要:引脚与GPIO的关系 引脚(pin)是对芯片的外部物理接口的一个称呼,它是在不把这个物理接口投入到具体应用场合下的称呼。例如,我们可以说,某某芯片的P1.5引脚可以作为数字输出驱动外部数字设备,也可以作为串口接受引脚接受串口数据。那么P1.5就是一个引脚(pin),而作为数字输出,UART的RX就是 阅读全文
posted @ 2017-12-16 12:23 lulipro 阅读(14867) 评论(0) 推荐(0) 编辑
摘要:简介 在数字逻辑电路中,一个信号不是0,就是1。正是因为这样,数字电路的设计才简单,可靠。 通常,用电压5v(或者接近5V)代表 on 开状态,代表高电平,对应状态 1。用电压0v (或者接近0v)代表off关状态,代表低电平,对应状态0。 有些开发板是基于3,3V的,因此使用3.3V作为高电平。 阅读全文
posted @ 2017-10-15 23:58 lulipro 阅读(9879) 评论(2) 推荐(4) 编辑
摘要:基本数据类型简介 常见的Arduino是基于ATmega的8位 AVR单片机,例如Arduino UNO ,Arduino Nano,Arduino mega2560等。还有高级点 32位的,如Arduino Due。 由于Arduino是基于C/C++语言的,具有平台差异性,因此,其基本数据类型在 阅读全文
posted @ 2017-10-15 18:30 lulipro 阅读(34576) 评论(0) 推荐(1) 编辑
摘要:简介 假设:对于一个运算表达式,只考虑2元运算(如加减乘除 )和 操作数,我们就可以用一个二叉树去存储这个表达式:用叶子结点存储操作数,内部结点存储运算符,这样的二叉树就是一个表达式树。由于运算符都是二元的,则这个树实质也是一个满二叉树。 遍历表达式树 先序遍历表达式树,得到的是前缀表达式(波兰表达 阅读全文
posted @ 2017-09-20 19:27 lulipro 阅读(1184) 评论(0) 推荐(0) 编辑
摘要:简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?。 Java提供了更加优秀的解决办法:异常处理机制。 异常处理机制能让程序在异常发生时,按照代码的预先 阅读全文
posted @ 2017-09-13 19:50 lulipro 阅读(29844) 评论(14) 推荐(30) 编辑