- 博客(12)
- 资源 (10)
- 收藏
- 关注
原创 MQTT通讯协议分析(三): 发布Publish
一. 测试环境 mosquitto(MQTT服务器,虚拟机VM ubuntu16.04) + Paho(MQTT客户端,windows10) + ESP8266(MQTT客户端) ESP8266客户端上电启动将连接mosquitto服务器, 并订阅“test/a”, 并开启按键任务扫描按键是否按下,按下则发布Publish消息,TopicName为"wi...
2019-06-13 11:10:25
2199
原创 MQTT通讯协议分析(二): 订阅Subscribe
一. 订阅Subscribe数据包 1. QoS=0(1,2),抓包分析:分析: Subscribe报文固定报头 82 : 其中bit7~bit4 :8 对应消息类型为Subscribe, bit3~bit0: 2 保留位 09 : 剩余长度 Subscribe报文可变报头 00 :...
2019-06-13 00:08:03
5285
原创 MQTT通讯协议分析(一): connect连接数据包
前言: 继上篇MQTT测试环境搭建后,接下来趁热打铁来分析MQTT通讯协议数据包,来加深对MQTT理解,因个人技术有限,若以下分析有误,望留言纠正,谢谢。 环境: MQTT服务器(Mosquitto,ubuntu) + MQTT客户端(paho, windows) + wireshark(抓包工具) 参考文献: MQTT-3.1.1-CN ...
2019-06-09 13:05:59
4430
2
原创 搭建MQTT测试环境(一): ubuntu安装MQTT服务器 + windows安装MQTT客户端
一. 为什么选择在ubuntu下安装服务器的原因 因为考虑后使用wireshark抓取MQTT数据包来进行对MQTT协议分析, mqtt客户端使用的是eclipse.paho.ui.app(安装在windows下,后续将介绍如何安装),如果将mqtt服务器安装在windows下,那么wireshark无法捕获localhost数据包(可能有其他办法搞定,总之没必要麻烦,而且将服务器安装...
2019-06-08 11:29:45
18279
11
原创 Linux + GCC + 创建动态链接库
1.接上一篇linux下使用GCC 编译器创建静态链接库后,这篇来介绍如何创建动态链接库。2. 还是一样,准备创建动态链接库的 源材料: .c 、 .h 文件,如下图:3. 编写简单的源文件后,之后创建Makefile,编写Makefile,具体如下:PS: 较静态链接库的Makefile的区别: (1)在第二行最后添加 -fPIC ,-fPIC 作用: 让编译器将
2017-12-26 21:09:07
881
原创 GCC+ LINUX +创建静态链接库
1.准备创建静态链接库的源文件: aston.c 、 aston.h,其中aston.c 中实现简单的打印调试信息,及返回2数相乘的结果值,具体如下图:(2)创建Makefile,具体描述:1.设置只编译不链接(只生产.o文件) 2.使用ar 命令 创建归档文件(即 .a 静态链接库文件)。具体如下图:(3)编写测试代码: test.c 。 注意:
2017-12-25 22:57:44
408
原创 KEIL 创建静态链接库+ 调用自己创建的静态链接库
1.为什么要创建静态链接库?当公司或者个人需要提供自己的编写的代码供他人调用时,而你或提供方并不想提供源代码(.c源代码),只想提供头文件.h(在头文件中申明函数)供他人调用,他人在调用时只需要知道调用的函数功能是什么,传递的参数是什么等,无需了解函数是怎样具体实现的。 此时就需要静态链接库(当然还有动态链接库,这里先讲解静态链接库的生成和使用)。2.如何在KEIL 中生成静态链接
2017-12-25 20:49:50
9982
2
原创 “指针数组”和“数组指针”的区别、函数指针定义及引用
1. 以int *p[5],Int (*p)[5]为例子来分析。 首先要理解中文层面上来理解指针数组、数组的指针。先分析Int *p[5], 变量p为核心,然后判断* 和[5]的优先级哪个高,谁的优先级高,p就与谁先结合,从C语言的符号优先级表可知(优先级表读者可自行百度),[]的优先级高于*,所以p与[]先结合,故p[5]为数组,再*与p[5]结合,解析为数组p 有5个变量,且每个变
2017-12-07 14:51:38
295
原创 深记“volatile”的重要性
http://m.blog.youkuaiyun.com/wzk456/article/details/41028619
2017-12-02 20:54:06
261
原创 关于三星的dnw软件烧录bin引起的问题
1.如题,在s5pv210裸机实验中 ,通常使用usb方式烧录(通过三星的dnw软件),较为方便。 然而发现在程序代码中定义变量(不管是全局变量还是局部变量、static 局部变量 初始化都将不成功),如在看门狗中断实验中,每次看门狗发生中断,进入isr中断服务函数中,将静态局部变量i打印后,自加1,。代码如下图:结果打印(使用SecureCRT软件打印):解决方法
2017-11-28 23:17:02
438
原创 解决undefined reference to `__aeabi_uidiv'错误
1.在Makefile中添加 libgcc.a 路径,如下图:2.修改Makefile后,再次编译,会出现undefined reference to `raise',解决方法如下:在工程文件夹中任一.c文件中添加 int raise(void)函数,具体如下图:PS: 本人在main.c 中定义了该函数。 注:int raise 函数也可以 定义成 如下: 该函
2017-11-28 19:33:54
9119
转载 ARM串口通信中的nRTS和nTS含义
nRTS和nCTS其实就是标准9针串口中的RTS和CTS,小写n打头表示这信号是低电平有效。RTS和CTS分别是请求发送信号和清除发送信号。前者由终端告知Modem可以向我传输数据;后者由Modem告知终端我要向你发送数据。
2017-11-14 22:52:22
1397
esp8266移植eclipse mqtt客户端例程.rar
2019-06-13
ubunt下安装nginx web服务器
2019-04-10
基于STM32F103ZET,移植LWIP协议栈,sequential编程接口实现TCP服务器
2018-07-07
基于STM32F103ZET,移植LWIP协议栈,sequential编程接口实现TCP客户端
2018-07-07
基于STM32F103ZET,LWIP/TCP/IP,TCP服务器RAW实现
2018-07-03
基于STM32F103ZET,LWIP/TCP/IP,UDP客户端RAW实现
2018-07-01
基于STM32F103ZET,LWIP/TCP/IP移植RAW实现
2018-07-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人