- 博客(139)
- 资源 (13)
- 收藏
- 关注
原创 4. BLE连接建立过程
同一款手机,为什么跟某些设备可以连接成功,而跟另外一些设备又连接不成功?同一个设备,为什么跟某些手机可以建立连接,而跟另外一些手机又无法建立连接?同一个手机,同一个设备,为什么他们两者有时候连起来很快,有时候连起来又很慢?Master是什么?slave又是什么?什么又是Connection event和slave latency?希望这篇文章能帮助你回答上述问题。BLE连接示例假设我们有一台手机A(以安卓手机为例),一个设备B(设备名称:Nordic_HRM),如下所示,我们可以
2022-05-19 14:59:38 575 1
原创 vscode 解決 ctrl+shift+f 无效问题
1. vscode ctrl+shift+f快捷键 一直无效,查看vscode配置没问题2. 猜想应该是和某个系统的快捷键冲突了,经过查找。发现是win10 自带的输入 冲突
2022-03-03 09:58:21 6395 7
原创 解决OneNote同步失败的问题
主要参考:Onenote 无法同步/同步失败的原因(附解决方案) - 知乎简单的说,OneNote 需要从OneDrive同步资料,但是OneDrive的服务器在国外。:
2022-02-24 10:28:02 2694 1
原创 BLE技术初探
BLE是低功耗蓝牙的英文缩写(Bluetooth Low Energy),是蓝牙4.0版本起开始支持的新的、低功耗版本的蓝牙技术规范。蓝牙技术联盟(Bluetooth SIG)在2010年发布了跨时代的蓝牙4.0,它并不是蓝牙3.0的简单升级版本,而是全新的技术架构,蓝牙4.0版本分两种模式:单模蓝牙和双模蓝牙。常见的蓝牙音箱,是典型的双模蓝牙,它需要传输大量的音频数据。而小米手环,蓝牙温度计则属于单模蓝牙。行业里一般不讲单模蓝牙,而是统一称为低功耗蓝牙。如今,蓝牙5.0已经发布和应用,4倍通信
2022-01-13 18:48:44 3874 1
原创 ESP32 Http 开发
1、http 协议https://www.cnblogs.com/an-wen/p/11180076.html2、esp32 http参考demoesp-idf/example/protocols/https_request/https_request_example_main.cesp-idf/example/protocols/esp_http_client/esp_http_client_example.c (只有get接口)3、关键代码截取酷狗开发的关键代码,供参考
2021-09-09 10:48:52 501
原创 Tmux 断电恢复
1. 需要插件支持,参考如下文档https://www.cnblogs.com/wang_yb/p/10208075.html2. 如果安装后, 如下指令无效,接着看prefix + Ctrl-s Save prefix + Ctrl-r Restore3. 手动下载Tmux Resurrect1.把代码克隆到这里 ~/.tmux/plugins/resurrect:git clone https://github.com/tmux-plugins/tmux-resur...
2021-08-30 10:36:47 307
原创 esp32 ota升级 - 包括断点续传
1. Esp32 ota参考https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/api-reference/system/ota.html#id152. OTA升级Esp32 ota主要参考3个文档Ota_aijia.c -> 自定义文件Esp_https_ota.cEsp_http_client.c3. OTA流程ota_aijia_start() -> 入口函数..
2021-08-19 10:12:52 1592 1
原创 ESP32 蓝牙开发
1. 低功耗蓝牙(BLE)协议栈低功耗蓝牙协议是蓝牙通信协议的一种,BLE协议栈就是实现低功耗蓝牙协议的代码1.1 层次协议蓝牙协议规定了两个层次的协议,分别为蓝牙核心协议(Bluetooth Core)和蓝牙应用层协议(Bluetooth Application)蓝牙核心协议就是对蓝牙技术本身的规范,不涉及其应用方式蓝牙应用层协议是在蓝牙核心协议的基础上,根据具体的应用需求定义出的特定策略蓝牙协议栈框图如下所示:1.2 蓝牙核心协议(Bluetooth Core)
2021-08-02 14:24:43 6815
原创 MQTT与TCP 长连接
前言在接触到MQTT之后,总是会有疑问,为什么用MQTT不用TCP长连接透传?看起来【TCP长连接+私有协议透传】和【MQTT+业务主题】似乎都能达到同样的目的,甚至用MQTT会使得设备端逻辑实现、APP端逻辑实现、云端架构实现更加复杂。那么为什么物联网还要使用MQTT协议呢?一、MQTT相比于TCP长连接的优势1、协议更标准MQTT是标准的RFC协议,相比于私有协议而言更加标准。好处在于:(1)协议非常完整,能够马上用于生产。各端实现同一套协议之后,就能进行通信;私有协议还需要
2021-07-13 17:04:19 5291 2
原创 ubuntu虚拟机找不到网卡
1、sudo service network-manager stop2、sudo rm /var/lib/NetworkManager/NetworkManager.state3、sudo service network-manager start
2021-06-04 16:51:12 535 1
原创 git commit 修改编辑器
修改~/.gitconfig(修改这个文件将全局有效)或项目目录中的.git/config(修改此文件只是使当前项目默认使用vim)中增加以下内容:[core]editor=vim转载于:https://www.cnblogs.com/dakewei/p/10451158.html————————————————版权声明:本文为CSDN博主「持续努力」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/wc9
2021-05-31 19:03:38 479
原创 python 不同版本共存 解决pip安装问题
python -m pip install requests或者python3 -m pip install requests
2021-03-25 16:08:19 241
原创 解决VMware Workstation Player 文件拖拽
直接apt如下指令sudo apt-get autoremove open-vm-toolssudo apt-get install open-vm-toolssudo apt-get install open-vm-tools-desktop
2021-03-16 13:31:44 1568 4
原创 Linux下 UNIX域套接字
在Linux系统中,有很多进程间通信方式,套接字(Socket)就是其中的一种。但传统的套接字的用法都是基于TCP/IP协议栈的,需要指定IP地址。如果不同主机上的两个进程进行通信,当然这样做没什么问题。但是,如果只需要在一台机器上的两个不同进程间通信,还要用到IP地址就有点大材小用了。Unix域套接字,专门用来解决这个问题。其API的调用方法基本上和普通TCP/IP的套接字一样,只是有些许差别。注: UNIX域套接字仅仅复制数据;它们并不执行协议处理,不需要添加或删除网络报头,无需计算检验和,
2021-01-19 15:12:13 639
原创 Linux 下 不同进程之间传递描述符
1. 接收传递描述符,demo(fd_read_file.c)创建流管道 fork并exec 父进程等待子进程 接收描述符#include <stdio.h>#include <stdlib.h>#include <string.h> #include <sys/socket.h>#include <unistd.h>#include <sys/wait.h>#include <fcntl.h>.
2021-01-14 19:57:09 487
原创 Linux - signal通信
对于 Linux来说,信号实际是软中断,许多重要的程序都需要处理信号。信号,为 Linux 提供了一种处理异步事件的方法。比如,终端用户输入了 ctrl+c 来中断程序,会通过信号机制停止一个程序。1. 信号概述1.1 信号的名字和编号每个信号都有一个名字和编号,这些名字都以“SIG”开头,例如“SIGIO ”、“SIGCHLD”等等。信号定义在signal.h头文件中,信号名都定义为正整数。使用kill -l来查看信号的名字以及序号,信号是从1开始编号的,不存在0号信号。kill对.
2021-01-12 11:30:56 276
原创 Linux下,write/read,recv/send, recvfrom/sendto的区别
先说概念和应用场景:read/wirte是通用的文件描述符操作;recv/send 通常应用于TCP;recvfrom/sendto通常应用于UDP。1. read/writessize_twrite(int fd, const void*buf,size_t nbytes);ssize_t read(int fd,void *buf,size_t nbyte);write函数是将buf中的nbytes字节内容写入文件描述符fd.成功时返回写的字节数.失败时返回-1. 并设置errno变量.
2021-01-06 13:35:28 2784
原创 syslog 和 rsyslog
1. 介绍rsyslog可以简单的理解为syslog的超集,在老版本的Linux系统中,Red Hat Enterprise Linux 3/4/5默认是使用的syslog作为系统的日志工具,从RHEL 6 开始系统默认使用了rsyslog。其特性包括:支持输出日志到各种数据库,如 MySQL,PostgreSQL,MongoDB,ElasticSearch,等等; 通过 RELP + TCP 实现数据的可靠传输(基于此结合丰富的过滤条件可以建立一种 可靠的数据传输通道供其他应用来使用);.
2021-01-04 15:48:11 5184
原创 Linux - 守护进程-2
利用daemon()函数创建守护进程1. 函数简介#include <unistd.h>int daemon(int nochdir, int noclose);DESCRIPTION The daemon() function is for programs wishing to detach themselves from the controlling terminal and run in the background as system d...
2020-12-29 15:40:12 82
原创 Linux - 守护进程-1
1. 守护进程概述Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。常见的守护进程包括系统日志进程syslogd、 web服务器httpd、邮件服务器sendmail和数据库服务器mysqld等。守护进程一般在系统启动时开始运行,除非强行终止,否则直到系统关机都保持运行。守护进程经常以超
2020-12-29 11:39:06 113
原创 Linux下 socket-udp通信
UDP是无连接不可靠的数据报协议,非常不同于TCP提供的面向连接的可靠字节流。典型的UDP客户/服务器程序,客户不与服务器建立连接,而是只管使用sendto函数给服务器发送数据报。类似地,服务器不接受来自客户端地连接,而是只管调用recvfrom函数。1. 服务器程序demo#include <stdio.h>#include <string.h>#include <sys/socket.h>#include <netinet/in.h>
2020-12-11 10:47:24 678
原创 小米笔记本解决风扇异响
买的小米笔记本电脑Pro 15.6刚开始用还行,后期风扇呱呱的响,烦死人。找小米售后也没什么用。网上查了下,同问题还不少。一句话总结小米降成本的风扇太垃圾。一、解决方案1. 拆机清灰,需要定时清理;2. 升级bios,把风扇转速逻辑降低。(我选它)二、Bios升级1. 查看系统bios版本Win键盘,输入cmd,调出命令提示符。输入 msinfo32。(我之前版本bios版本0502,新版本为0A07)2、bios升级正常升级bios需要U盘,但是贼.
2020-11-11 13:41:58 12489 3
原创 Linux下 socket-tcp通信
1. 代码分为clien和serverclient:连接服务器server,并获取时间。server:检测到client连接上来,获取当前时间,并传给client2. 源码如下client.c#include <stdio.h>#include <string.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#inclu.
2020-11-10 18:07:51 226
原创 2 系统架构师 - 知识框架
1. 考试范围考试范围很广了,从操作系统、嵌入式、web服务器,23种设计模式,软件架构风格等待2. 如何整理可以下载一个XMind ZEN,挺好用的给个链接可以下载一下
2020-11-09 10:50:19 89
原创 1. 系统架构师 - 简介
1. 系统架构师是什么。2. 证书有没有用证书作用较小,但是中间学习的过程,可以让你有新的认识3. 如何报名软考中级软件设计师,一年可以考2次。软考高级系统架构师,一年可以考1次,在11.10号左右,各省不一样可以直接考高级系统架构师,也可以先考中级软件设计师,再考系统架构师报名网址: https://www.ruankao.org.cn/4. 如何学习有专门的教材可以参考有专门培训网站,类如希赛网临考试半年,开始预备复习。5. 考试难度稍微有点难..
2020-11-09 10:35:27 5194
原创 Linux下 debug手段
在linux下开发难免会遇到bug,但是由于没有图形IDE,导致debug也变得困难,其实只要掌握一些常用的debug工具,一些错误就能很快解决,本文就介绍一些常用的工具用以调试:log输出log永远是最简单快捷的调试方式,可以快速定位bug,通过设置日志级别控制日志的输出详略程度,结合一些文本分析工具awk/sed/grep可以快速在大量日志中找到错误信息。strace是一个用来跟踪系统调用的简易工具。它最简单的用途就是跟踪一个程序整个生命周期里所有的系统调用,并把调用参数和返回值以文本的
2020-10-20 18:06:21 8590 1
原创 编译脚本 区分编译不同代码
1、编译脚本auto_build.sh中查找 配置文件product_feature.h 中的,如下内容,判断有没有 #define DEEP_SLEEP_NEW有,编译deep_sleep_new.c否则,编译deep_sleep.c#if (8456449 == PRODUCT_ID)#undef PROD_IS_INPUT_DEVICE#undef WATCH_DOG_ENABLE#undef PROD_IS_INFRARED_SENSOR#define PROD_SEN
2020-09-21 17:40:58 199
原创 【转】linux设备模型之kset/kobj/ktype分析
背 景Read the fucking source code!--By 鲁迅 A picture is worth a thousand words.--By 高尔基说明:Kernel版本:4.14 ARM64处理器,Contex-A53,双核 使用工具:Source Insight 3.5, Visio1. 概述今天来聊一下Linux设备模型的基石:kset/kobject/ktype。sysfs文件系统提供了一种用户与内核数据结构进行交互的方式,可以通过mount -..
2020-08-17 18:21:57 422
原创 Linux 获取镜像
1. linux学习网站窝窝科技http://www.wowotech.net/2. linux源码获取官方网址:https://www.kernel.org/
2020-08-14 15:31:10 101
原创 3、低功耗蓝牙(BLE)配对和解绑
什么是低功耗蓝牙配对?什么又是绑定?配对和绑定有什么区别?配对有什么好处?如何删除绑定信息?如何确定配对的安全等级?just work的配对一定就不安全吗?如何开发自己的配对应用?本文将对以上问题进行论述。本文涉及所有代码和脚本都已上传到百度云盘,云盘链接如下所示:链接:https://pan.baidu.com/s/1FKTfY3Q_zBVvviO7KC7Gyg#list/path=%2Fblog密码: y8fb Paring(配对)和bond...
2020-07-10 11:31:32 9261
原创 Linux下 select/epoll
一、Unix/Linux网络IO模型 在经典的Unix网络编程中,总结出了5种不同的网络IO模型,分别是阻塞式IO,非阻塞IO, IO多路复用,信号驱动IO,以及异步IO模型。1. 阻塞式IO2. 非阻塞式IO3. IO多路复用4. 信号驱动式IO5. 异步IO模型二、为什么IO多路复用应用最广泛 异步IO模型:理论上来说性能更好,但是目前阶段在linux平台下,操作系统底层并没有真正实现完全异步IO...
2020-07-02 11:20:32 627
原创 2、低功耗蓝牙(BLE)协议栈 初探
BLE协议栈为什么要分层?怎么理解BLE“连接”?如果BLE协议只有ATT层没有GATT层会发生什么?协议栈框架一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。在深入BLE协议栈各个组成部分之前,我们先看一下BLE协议栈整体架构。如上图所述,要实现一个BLE应用,首先需要一个支持BLE射频的芯片,然后还需要提供一个与此芯片配套的BLE协议栈,最后在协议栈上开发自己的应用。...
2020-06-08 14:01:07 349
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人