自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Murphy

公众号:物联网学前班,分享嵌入式物联网知识和技能

  • 博客(45)
  • 资源 (7)
  • 收藏
  • 关注

原创 AT指令介绍

AT 指令介绍AT(Attention)指令是由 Dennis Hayes 发明的,所以也称为 Hayes command set。AT 指令最初是用来指导 modem 工作的,后面随着技术的发展,低速 modem 已经退出了市场,但 AT 指令却不断发展,并且在今天 AT 指令依旧扮演这非常重要的角色。虽然在 PC 端、手机上已经没有了 AT 的使用,但其却在嵌入式行业里各类联网模块中发挥着重要的作用,而且不仅仅只应用在蜂窝模块,还应用到了 WiFi、BLE 等模块中。相关标准随着技术的发展,目前

2021-01-13 13:17:48 5984 1

原创 C 语言编程风格

文章首发于 “物联网学前班” 公众号,关注查看更多精彩内容。C 语言编程约定此文为约定,并非规范,由自己的编程习惯总结而来。文件字符编码一切的前提。强烈建议使用 UTF-8 编码格式。UTF-8 编码已经广泛应用在 WEB 中,是首选的编码格式。UTF-8 编码是 Unicode 标准中的变长编码方式,可以表示 Unicode 中任意一个字符,使用1~4个字节表示字符,且字节顺序无关。统一使用 UTF-8 字符编码可以避免各种乱码问题的出现。但是使用 UTF-8 编码格式的目的并不是为

2021-01-01 23:24:02 1224 1

原创 同一客户端下使用多个 Git 账户

目录问题由来为什么会有多个 Git 账户多个账户会带来什么问题解决方案生成公钥部署公钥在 ~/.ssh 目录增加配置 config 文件测试小乌龟 Git 工具适配关注我问题由来为什么会有多个 Git 账户当下环境做软件开发或多或少都离不开资源丰富的 GitHub,它并誉为程序员的天堂,几乎每一个软件开发人员都会有一个自己的 GitHub 账户。另一方面,软件公司也在不断进化代码的管理方式,大多数软件公司开始独立部署私有的 Gitlab 来托管公司代码,进而进行工程管理和代码审查,以及后续的自动化部

2020-09-13 20:36:34 788 2

原创 基于 Markdown 的中文文档排版规范

本篇文章先介绍 Markdown 的背景信息,然后着重介绍 Markdown 中文文档的排版规范,不介绍 Markdown 的入门使用。0 前言相信阅读本文的读者一定有被 Markdown 灵活的写作风格搞懵过,不知道怎么写更优雅、更规范,那么本文就是来帮您梳理 Markdown 写作过程中常见的一些问题,然后给出一个建议的应用规范。通过阅读本文,相信你一定可以基于 Markdown 写出更加优雅的中文文档。1 关于 MarkdownMarkdown 是由 John Gruber 于 2004 年

2020-05-28 21:27:22 2423 1

原创 C 语言 #、##、__VA_ARGS__

‘#’ 和 ‘##’ 属于预处理标记。‘#’ 和 ‘##’ 用于类似函数的宏定义中(或者简称为宏定义函数)。‘__VA_ARGS__’ 是 C99 引入的用于支持宏定义函数中使用可变参数。操作符 ‘#’在宏定义展开的时候,标记 ‘#’ 用于将 ‘#’ 后面的宏定义函数中的参数转化为对应的字符串。宏定义函数的参数与预处理标记 ‘#’ 之间出现的每一个空格都会被删除,并删除第一个预处理标...

2020-01-05 21:34:18 846 2

原创 Cortex-M3/4 调试技巧、STM32 调试手段

Cortex-M3/4 一些调试技巧今天主要总结下这段时间在没有 调试器 情况下,解决 bug 的一些辅助调试手段。在没有 调试器 的情况下,进行代码调试的手段就只有 log 大法,为了能够尽可能详细地输出有用的调试信息,往往我们需要将 调用栈 、R0- R15 寄存器、SCB、中断状态、线程状态等信息打印出来,然后配合 反汇编 进行调试跟踪代码。这会用到一些特殊的函数(内链汇编函数),下面将...

2019-07-04 20:57:26 1782 1

原创 32位 STM32 打印 uint64_t 类型

测试代码,未整理,可参考!

2023-08-24 10:15:32 717

原创 LwIP 2.0.3 迁移 LwIP 2.1.2 注意事项(源地址和目的地址位置调换问题)

LwIP 2.0.3 迁移 LwIP 2.1.2 注意事项如果你使用了自定义的 router hook,那么请检查你适配的 hook 接口,确定 dest 和 src 顺序是正确的。在 LwIP 的 CHANGELOG 里有以下描述: 2017-08-08: Dirk Ziegelmeier * ip4_route_src: parameter order is reversed: ip4_route_src(dest, src) -> ip4_route_src(src, dest)

2021-10-16 13:07:41 1006

原创 linux hostapd EAPOL四次握手日志(基于 RTL8189 SDIO wifi 模组)

1. 发送 EAPOL 请求,携带 ANonce:WPA: Assign ANonce - hexdump(len=32): 10 0e 61 c2 b8 33 67 85 59 64 db b2 c8 e1 07 56 4b ba 63 9c 78 53 18 ba 28 6f e8 e2 fc 10 cf 3dWPA: f8:ac:65:c1:67:22 WPA_PTK entering state INITPSKSearching a PSK for f8:ac:65:c1:67:22 pre

2021-04-16 14:28:33 1771

原创 解读乐鑫 AT 指令解析器,解锁你不知道的用法

欢迎关注、星标????畅享精彩内容由于近期正好在做这个事情,所以今天就以乐鑫的 AT 指令为例,讲讲 AT 解析器设计有哪些事情,也算是个自己近期的学习总结了。往期文章回顾1、AT 指令介绍2、初体验乐鑫 ESP32 AT 指令少有人关注的 AT 解析器互联网上很多 xxx AT 指令使用教程,为何少有人关注 AT 解析器呢?情况是这样的,绝大部分开发者是拿 AT 固件来开发产品的,只有很少一部分人是开发 AT 固件的。AT 固件通常是由芯片原厂、模组厂商来提供的,并且大多模组厂商也

2021-01-31 18:05:08 1439 4

原创 乐鑫 AT 固件初体验 - ESP32

乐鑫 AT 固件初体验前往乐鑫官网 下载最新版本 AT 固件和 AT 指令集手册。硬件准备本文使用乐鑫的 ESP-WROOM-32(ESP-WROOM-32 是 ESP32-WROOM-32 的曾用名)模块,4MB Flash,无 PSRAM。ESP32 系列模组和开发板参考该链接,这里有详细的对比介绍。模块接线示意图如下:(图片来自乐鑫文档)请在该链接里找到你的硬件对应的接线方式,连线必须准确无误!选择 AT 固件乐鑫的 AT 固件自 V2.0 之后就开始使用 ESP-AT(基于

2021-01-24 21:22:40 2009 3

原创 奋斗了四年的 NB-IOT 怎么让 Cat.1 成了最靓的仔?

文章首发于“物联网学前班”公众号奋斗了四年的 NB-IOT 怎么让 Cat.1 成了最靓的仔?NB-IOT 和 eMTC 怎么样了?Cat.1 是什么首先 Cat 是 Category 的缩写,中文意思是“类别,种类”,在 3GPP 中指 UE-Category(UE: User Equipment,用户设备)。另外,Cat 后面的数字即代表不同的种类,3GPP 将不同种类的网络用 “Cat.X” 格式命名。根据 3GPP Release 定义,Cat.X 这个值是用来标识设备无线性能等级.

2020-05-19 18:09:06 7241 2

原创 来自 GitHub 的侵权通知及感触

来自 GitHub 的侵权通知[GitHub] DMCA Takedown NoticeMurphy May 12, 2020, 3:49:58 PM UTC Hi Murphy,I'm contacting you on behalf of GitHub because we've received a DMCA takedown notice regarding the following content:https://github.com/xxx/bookWe're giving yo

2020-05-19 18:02:30 931

转载 国产嵌入式操作系统发展思考 | 何小庆

国产嵌入式操作系统发展思考偶然翻到了这篇老文章,出自何小庆(《嵌入式操作系统风云录:历史演进与物联网未来》作者),写的很好,汇总了当下国产 OS 的状态,遂分享出来。本文源自微博“麦克泰技术”,物联网学前班公众号经授权转载分享。嵌入式操作系统历史悠久、门类繁多、用途广泛,不仅包括嵌入式实时多任务操作者系统(RTOS)、开源的 Linux、机器人和路由器操作系统,还包括新型的物联网操作系统,...

2020-02-15 11:30:53 1751

原创 Markdown 添加文献引用

增加引用的文献列表示例如下:## 参考- [1] [百度学术](http://xueshu.baidu.com/)- [2] [Wikipedia](https://en.wikipedia.org/wiki/Main_Page)增加锚点## 参考<div id="refer-anchor-1"></d...

2020-01-03 09:38:45 37663 4

原创 docker 的官方安装教程

docker 的官方安装教程:https://docs.docker.com/install/linux/docker-ce/ubuntu/这里仅仅给出了一个官方链接,因为安装过程可能会改变,但是官方的文档必然会第一时间同步更新,因此建议大家直接阅读官方的文档。...

2019-12-11 14:28:25 3083

原创 MicroEJ 基本认识

MicroEJ 是做虚拟机的,现在也涉略物联网领域,其推出了 MicroEJ VEE 产品,VEE 是一个标准,安全,可靠的嵌入式软件平台,能够在包括微控制器(MCU),微处理器(MPU)和片上系统(SoC)在内的任何处理器上运行。具有所有标准服务的嵌入式物联网虚拟执行环境。参考官网VEE 介绍...

2019-11-25 10:16:28 1749

原创 开源智能手表 Bangle.js 记录

Bangle.js is an open, hackable smartwatch. Bangle.js 是一个开源的、可定制的智能手表。Bangle.js 使用 JavaScript 或图形化编程语言(Blockly)轻松开发自己的应用。您只需要一个 Web 浏览器(Chrome,Edge或Opera),即可上传应用程序或编写代码以在手表上无线运行!Bangle.js 具有防水功能和 AI 功...

2019-11-25 10:08:30 1541

原创 RT-Thread TCP/UDP 客户端程序(RT-Thread SAL TCP UDP client)

最近发现不止一个人再要基于 RT-Thread 的 TCP 和 UDP 示例代码,包括 SAL 方式的。这里给出一个我自己写的示例程序吧,希望可以帮到需要的人。TCP 客户端/* * Copyright (c) 2006-2019, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Chan...

2019-11-11 18:15:28 3651

原创 Go 环境搭建

本文准备整理下完整的 Golang 开发环境搭建,包括代码提示与补全。需要的依赖包windows下需要 call 命令,Linux 下移除。call git clone https://github.com/acroca/go-symbols acroca/go-symbolscall go install github.com/acroca/go-symbolscall git ...

2019-11-08 14:01:15 181

原创 Ubuntu 上安装 iperf

Ubuntu 上安装 iperf下载git clone https://github.com/esnet/iperf.git安装依次执行以下命令:$ cd iperf$ ./configure$ sudo ldconfig /usr/local/lib$ make$ make install运行运行 serveriperf3 -s运行 clientiperf...

2019-11-05 18:40:55 2954

原创 离线 API 文档查看工具分享

写代码,API 用法记不住,那就需要一个程序员词典,推荐下两个好用的离线 API 查看工具,程序员的百科全书。DASH仅可以用于 apple 产品,IOS 系统下。zealzeal 就很良心了,Windows 下可用,文档也不比 DASH 少,界面干净,下载速度也比较快。...

2019-09-23 11:17:03 2616

原创 NB-IOT 模块 MT2625 使用总结

MT2625 NB-IOT SOC 应用AT 建立 UDP 连接查询 apn:AT+CGDCONT?激活 apnAT+EGACT=1,1,“cmnbiot6”,"",""其中 cmnbiot6 为查询到的 apn建立 socketAT+ESOC=1,2,1建立连接AT+ESOCON=0,PORT,“IPADDR”AT+ESOCON=0,2039,“114.116...

2019-09-20 17:56:31 4090

原创 C语言内存 dump 函数

按照 beyond compare 形式输出内存数据,使用 HEX 方式。代码如下:#define __is_print(ch) ((unsigned int)((ch) - ' ') < 127u - ' ')void dump_hex(const uint8_t *ptr, uint16_t buflen){ unsigned char *buf = (unsigned ...

2019-09-18 12:08:04 4642

原创 单个文件编译优化配置

单独设置一个 C 文件的优化级别,支持 MDK、IAR、GCC,代码如下:#if defined(__CC_ARM) #pragma O1#elif defined(__ICCARM__) #pragma optimize=none#elif defined(__GNUC__) #pragma GCC optimize ("O0")#endif...

2019-09-17 13:59:55 480

原创 一个全栈工程师在线编程学习平台 | freeCodeCamp

FreeCodeCamp 简称 FCC,是一个非盈利的在线编程学习平台。课程主要是前后端内容,采用挑战闯关的形式记录学习过程,是一个很好的全栈工程师学习平台。创始人 Quincy Larson 自费运营该平台(现在也接受捐赠),旨在用 freeCodeCamp 去纠正那些学习编程中极端无效和曲折的方法,去改变所有那些让学习编程成为噩梦的事情。官网中文翻译站点中文翻译的站点与原官网内容一...

2019-09-16 09:41:34 611

原创 ARM GCC 库打桩——符号替换

开发中,难免会遇到只有库没有源码的情况,调试的时候,库里的几个函数又非常关键,那我们怎么控制里面的流程呢,并插入自己代码?这个时候就需要使用 GCC 工具重定义库中的符号,然后在外面包装该函数。举例:一个库:lib_test.a库中的函数:void hello_test_lib(void);现在,我们想把库里面的 hello_test_lib 函数替换为 new_hello_test_l...

2019-09-05 18:08:22 849

原创 python 遍历删除指定格式文件

代码放在自己电脑上总是找不到,那就放到博客里吧。在做嵌入式开发的时候,总是会生成很多中间文件(如 .o 文件),所有有时候需要去查找删除这样的文件,所以就写了这个一个 python 脚本(参考网络实现)。写这个文章的时候没有找到相关参考代码的出处,故没有参考索引,见谅。代码假定你将该代码命名为 rm_specifial_file.py。#!/user/bin/python#codi...

2019-08-22 16:32:09 507 1

原创 RT-Thread DHT11 温湿度传感器驱动

分享一个我整理的 DHT11 温湿度传感器驱动 dht11_rtt 软件包dht11_rtt 是基于 RT-Thread 物联网操作系统实现的 dht11 驱动软件包,该软件包托管在 GitHub,使用 Apache-2.0 协议许可。dht11_rtt 驱动使用了 RT-Thread Sensor 传感器框架和 Pin 驱动框架,因此在使用的过程中需要开启这两个功能。不过,在使用 RT-...

2019-08-17 22:32:48 3264 1

原创 【分享】主流嵌入式操作系统(RTOS)有哪些?看看这14种

看到 21ic 公众号发布了一篇文章 主流嵌入式操作系统(RTOS)有哪些?看看这14种,收藏过来。看到里面介绍了我在用的一个 RTOS 系统 RT-Thread。使用国内最有可能成为 Top 1 的 RTOS ,我很荣幸啊

2019-08-12 09:57:39 5771

原创 使用 GitHub Pages 和 Jekyll 搭建免费的个人博客

最近不想码代码,趁着台风 “利奇马” 肆虐的空隙,来捣鼓下 GitHub Pages。点我快速预览效果GitHub Pages 是一种静态站点托管服务,旨在直接从 GitHub 仓库托管您的个人、组织或项目的网页。使用 GitHub Pages,你可以基于众多免费的 Jekyll 主题模板,快速搭建自己的个人页面(个人博客),基本上不需要你写任何代码(哪怕是一行)。有趣的是,GitHu...

2019-08-11 20:28:18 214

原创 RT-Thread Pin 设备驱动框架快速对接

为什么需要 Pin 设备驱动框架跨平台可移植应用操作简单试想下面这个场景:你基于 STM32 MCU 编写了一个包含很多 GPIO 操作的应用程序,GPIO 控制函数使用的是 HAL 库。后面,由于某种原因,MCU 需要更换,使用的是 NXP 的芯片,不支持 HAL 库,那你怎么办?通常,你会查找所有 GPIO 操作相关的接口,然后替换成 NXP 提供的 GPIO 驱动函数,如果 ...

2019-07-10 08:41:22 1722

原创 番茄时钟(提升专注力,减少中断)- 番茄工作法

番茄时钟(提升专注力,减少中断)- 番茄工作法 APP 推荐工作或者学习过程中,我们常常会被其它任务打断,被一些通知消息吸引,转而停下手头上的事情去忙其它的事情,导致工作被切来切去,很难专注去完成一件事情。为了打破这种状态,每个人可能都做过不同的努力,但往往收效甚微,或者无法坚持下去。后面我偶然看到有人用番茄时钟专注工作,便决定尝试下,望通过刻意训练来达到高效工作和学习。番茄工作法介绍番茄...

2019-06-30 11:57:10 10298

原创 NB-IOT TCP 连接测试

MT2625 NB-IOT TCP 测试(基于 MTK MT2625 NB-IOT AT 指令)本文涉及的 AT 命令是基于 MTK 官方提供的 MT2625 NB-IOT AT 指令,非 移远(如 BC26)和中移物联网(如 M5311)提供的 AT 指令。另外,本文仅使用 AT 指令测试 MTK MT2625 AT 固件的网络连接,并不对 AT 指令做详细说明,如有需求请阅读 MTK 官方...

2019-06-28 21:23:26 4738

原创 TcpClient 示例程序 C 语言

TCP client 示例程序关键词:TCP 客户端代码TCP client 代码LWIP TCP 客户端程序LWIP TCP client 代码每一次调试网络相关的代码都需要一段最简单的 TCP 测试程序,后来就把这个程序记录到了代码片段,今天在自己的博客里再次记录下,希望更方便查找。简单的 TCP 客户端程序源码本代码在 RT-Thread OS 下测试使用,并验证通过。...

2019-06-20 18:59:56 5127

原创 记录 RT-Thread netdev 结构体与 lwip 结构体不匹配 bug 的调试过程

本文主要记录在使用 RT-Thread Netdev 组件的时候遇到的一个结构体不匹配的 bug。背景本次 bug 只要涉及 4 个文件:netdev.h:定义了 struct netdev 数据结构netdev.c:netdev 源码实现,这里主要涉及 netdev_low_level_set_link_status 接口netif.c:lwip 网卡相关接口,这里主要涉及 neti...

2019-06-17 16:24:22 1089

原创 【工具分享】图片的方式分享代码 #Carbon# 代码截图工具

图片的方式分享代码之 Carbon今天逛知乎,发现了一个非常实用的工具(Carbon)—— 图片的方式分享代码,这里做个记录,同时分享出来,希望能够帮助更多的人。无论你是发推还是发朋友圈,或者是贴到 PPT里,通常的方式,就是使用 QQ 或者微信截图的方式获取,快捷,但不那么美观,Carbon 的出现,完美解决了这个问题,地址 https://carbon.now.sh 。知乎参考地址点我。...

2019-05-03 14:55:33 1090

原创 不同编译器下 errno 与 RT-Thread 的对接

支持的编译器RT-Thread 支持的编译器有 newlib/minilibc/dlib/armlibc 的支持。在开启了 RT_USING_LIBC 后,GCC 编译使用 newlib未开启 RT_USING_LIBC 时,GCC 编译使用 minilibcdlib 是 RT-Thread 针对 IAR 编译器的移植适配(使用标准库接口时注意开启 RT_USING_LIBC)arml...

2019-04-16 10:12:56 1712

原创 灵活的按键处理程序 FlexibleButton,C程序编写,无缝兼容任意的处理器,支持任意 OS 和 non-OS

灵活的按键处理程序 FlexibleButton前言正好工作中用到按键处理,需要处理单击、长按等按键事件,然后就造了这么一个轮子,为了以后更方便地加入其它的项目中使用,遂将其开源到 GitHub 中。后面发现 RT-Thread 软件包里也有一个开源的按键库 MultiButton,看到这个按键库的时候,心想,完了,又重复造轮子了,好伤心

2018-12-14 08:49:57 1656 2

转载 【转】掌握5个职场沟通技巧,让你成为会说话的人!

【转】掌握5个职场沟通技巧,让你成为会说话的人!说明背景故事高效沟通是一门技巧1 牢记沟通目的,不妥协2 换位思考,为对方考虑3 说服式的沟通,结论要放在最后4 激将法5 注意用词细节真正的牛人并不在于他们的位置和角色,而是他们习惯于凡事用心、全力以赴。——工惠帮·杜春鹏说明文章转自工惠帮,点我查看原文链接。转载到这里是方便自己汇总阅读,同时帮助原作者分享好文章。如果有侵权,麻烦联系删...

2018-12-02 15:07:07 1716 1

virtualbox-6.1_6.1.18-142142_Ubuntu_eoan_amd64.deb

ubuntu 下 virtualbox 6.1.18 软件 virtualbox-6.1_6.1.18-142142_Ubuntu_eoan_amd64.deb

2021-02-23

rtthread-tcp-udp-client.zip

最近发现不止一个人再要基于 RT-Thread 的 TCP 和 UDP 示例代码,包括 SAL 方式的。 这里给出一个我自己写的示例程序吧,希望可以帮到需要的人。

2019-11-11

RT-Thread QEMU TAP 网卡驱动

使用 RT-Thread QEMU BSP 的时候,如果需要用到网络,需要使用 TAP 网卡来为 QEMU 提供网络支持。

2019-07-06

MQTT 测试软件 ForWindows.rar

Windows 平台的 MQTT 测试软件,包含 MQTT BOX 和 MQTTFX

2019-07-06

tcp_client.rar

基于 lwIP socket 的 TCP 客户端程序。使用 BSD-style 风格的 socket 函数,并在 RT-Thread 平台验证通过。

2019-06-25

ARM Cortex-M3M4 权威指南(第三版)+附录+例程.7z

ARM Cortex-M3/M4 权威指南(第三版中文)+附录+例程 打包了 Cortex-M3/M4 权威指南第三版和本书的附录,以及本书涉及到的例程源码。

2019-06-11

飞思卡尔龙邱BDM驱动

这是飞思卡尔BDM的驱动,解压之后即可使用。

2014-09-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除