- 博客(21)
- 资源 (6)
- 问答 (4)
- 收藏
- 关注
原创 用 ESP32 + PCM5102 打造一个无线的HIFI音乐播放器
对蓝牙音频有过一些了解的人会知道,要支持 AptX 、 LDAC 等才算是好的蓝牙音频,但不管是 AptX 还是 LDAC ,亦或者是所有蓝牙音频都必须支持的 SCB ,它们都是一种有损编码技术,区别只在于有损程度与延迟时间,而且对于 Windows 系统来说,如果播放器的音频输出不设置 WASAPI 独占,解码出来的PCM音频数据还要经过系统的 SRC (采样率转换),才到达蓝牙驱动再编码。如果需要严格控制时钟抖动,可由主控端提供一个精准的系统时钟信号),可以悬空,但最好接地避免噪声。
2025-01-03 16:32:36
1740
原创 Linux创建git仓库,并利用post-receive钩子实现自动部署
一、创建git仓库的用户。二、创建仓库及设置。三、自动部署。通过以下命令克隆仓库:git clone git@192.168.1.111:/repo/app1.git
2024-08-25 00:31:16
489
1
原创 Linux下同步命令Rsync使用说明
rsync -rcv --exclude '.git' src/ dest/ —— 部署代码使用,基于文件指纹码比较保证可靠性,并且保留目的端存在,而源端不存在的文件。rsync默认只同步新增、变更的文件,目的端有而源端无的文件并不会被删除,如确实要删除,需添加--delete参数。rsync -aIv --delete src/ dest/ —— 完全同步,使用源端与目的端保持绝对的一致。-I —— 基于文件属性比较时,不跳过文件大小和尺寸相同的文件,相当于把所有文件覆盖到目的端。
2023-10-10 18:39:45
319
1
原创 LSb、MSb、大端、小端
LSb ( Least Significant bit ) -- 最低有效位MSb ( Most Significant bit ) -- 最高有效位首先它们不表示顺序,仅代表一个二进制数的两个bit位。MSb代表对二进制数的值影响最大的那个bit,LSb代表对二进制数的值影响最小的那个bit。按照人类阅读/书写习惯,MSb通常是二进制数最左边的那个bit,LSb是二进制数最右边的那个bit。
2023-08-07 20:04:53
4790
2
原创 USB通信协议理解笔记
USB发送顺序:同步域按MSb到LSb顺序发送;Packet Content部分,以域为单元,先定义的单元先发送,单元内按LSb到MSb顺序发送,对于数据域,低地址字节先发送,字节内按LSb到MSb顺序发送。SETUP事务中的数据包必须使用DATA0,IN事务及OUT事务的数据包使用DATA0还是DATA1,跟事务在传输中的序列有关,具体参看传输相关说明。所有USB设备在连接之初,必须经过枚举过程,以便主机了解连接的是什么设备,并加载对应驱动程序,进行后续一系列的数据通信。
2023-08-06 18:41:17
371
原创 保姆级CH552入门教程
将下载到的器件库(wch.cdb)放到 Keil 安装目录的 “UV3” 文件夹下,然后编辑安装目录下的 “TOOLS.INI”,在 “[UV2]” 下面添加一行:CDB0=UV3\WCH.CDB ("WCH MCU Database")代码参考需要使用 CH554 的资料包 CH554EVT.ZIP(https://www.wch.cn/downloads/CH554EVT_ZIP.html),毕竟 CH552 只是比 CH554 少了 USB HOST 支持。CfgFsys();
2023-07-25 11:56:30
6522
8
原创 STM8入门之GPIO点亮LED
由于调用了GPIO_Init等库函数,所以要把库函数的源码添加到项目。使用的开发板,已经连有LED灯连在芯片第5脚。STM8入门之GPIO点亮LED。在main.c文件中添加如下代码。接下来编译下载即可,参看 “
2023-04-20 12:46:44
468
原创 Win10 LTSC 2021的BUG处理
1、微软拼音输入法不显示选字框切换为微软拼音输入法后,右击输入法图标,选 “设置”在微软拼音输入法设置页面选 “常规”然后在最下面的兼容性设置,将 “使用以前版本的微软拼音输入法” 开关打开即可。2、wsappx占用高CPU问题运行 > gpedit.msc > 计算机配置 > 管理模板 > Windows 组件 > 应用商店双击右侧 “关闭 Microsoft Store 应用程序” ,设置为已启用重启使生效。
2022-11-05 19:31:13
4543
2
原创 网口的标准POE供电
供电端有两种方式供电,厂商自行选择其一,不能同时供电。受电端需同时支持两种方式取电。由于12,36线序供电时,电源正负未规定,因此需要接整流桥,导正电源的正负。45,78线序供电时,协议规定45为正,78为负,为了更好的兼容性,通常也会接一个整流桥。POE供电五个过程:信号检测->分级->供电->监测->断电
2022-11-05 19:26:42
4190
原创 STM8入门之IAR创建项目及编译下载(STM8S103F3P6)
刚开始时,本人是以一个workspace下建多个project的方式管理所有项目。但是后来发现,要基于之前某个项目做些新的尝试,但又想保留之前的项目,在复制项目时,感觉很不方便,于是改为一个workspace下只建一个project,多个project则建多个workspace,要想复制项目时则复制整个workspace即可。下面是建立一个模板workspace/project的过程记录:
2022-09-13 20:19:34
4748
原创 jQuery处理url中的get参数
$.extend({ getUrlParams: function (url) { if (!url) { url = window.location.href; } var pos = url.indexOf('?'); if (-1 == pos) { return {}; } var hashes, hash, params = {}; .
2022-04-02 11:13:36
1204
原创 PHP中执行linux命令的4种方法及其区别
exec ( string $command , array &$output = ? , int &$return_var = ? ) : stringshell_exec ( string $cmd ) : stringsystem ( string $command , int &$return_var = ? ) : stringpassthru ( string $command , int &$return_var = ? ) : void对比: ..
2021-08-12 12:11:41
986
原创 PHP:pack、unpack用法大全
本文通过大量具有代表性和对比性的示例,来详细说明PHP中pack、unpack函数的用法。pack(string $format, mixed ...$values): stringunpack(string $format, string $string, int $offset = 0): array|falseformat字符串由格式字符组成,格式字符后面可以跟一个可选的重复参数。重复参数可以是一个整数(指定消耗多少个数据参数)或者*值(消耗到输入数据的末尾)。对于 a, A, h, H
2021-08-11 16:19:45
1415
原创 Swoole+ThinkPHP6自定义命令实现Mysql自动备份定时任务
尽管crontab+shell已经很强大很好用了,但在部署时,还是需要专门去写crontab配置,有那么一丢丢不方便,这里将备份配置放到项目里来,可以实现统一管理。脚本直接采用swoole定时器实现,并通过swoole的蜕变守护进程达到常驻内存运行目的。之所以不在swoole的server里,通过workstart调用定时器,是因为server还需要监听端口,不够简单直接,而且在服务退出时,work进程是没法响应信号退出的,只能被master强制回收。下面开始具体实现一、创建thinkphp自定
2021-07-08 17:37:34
1551
2
原创 PHP万能随机字符串生成函数,支持至少包含等形式
直接上代码if(!function_exists('rand_string')){/***生成随机字符串*@paramint$length字符串长度*@paramarray$type逐个字符定义随机字符集,索引数组,索引0表示默认字符集,索引i(i>0)表示第i个字符的随机字符集,字符集由基础字符集组合,通过数组的值通过位与的方式指定*@paramarray$codeSet重定义内部基础字符集...
2021-06-20 22:15:01
329
2
原创 两款小工具
DirectoryChecker文件夹校验器可以对目录下所有文件生成包含文件名、大小、MD5指纹的快照,然后通过快照与当前文件的比对,从而知道已经发生变更的文件。适用于批量文件完整性检查。PHPFileChecker文件检查器可对指定目录下的文件,按指定扩展名过滤后,检查其是否包含BOM头,或者"<?php"前面是否包含其他字符,以及是否符合utf8编码规则,还可以清除BOM及空白。两款软件功能虽有所差别,但整体实现流程是差不多的,都是开始后,先在UI线程完成基本的输入检查并记录,然后丢给一个
2021-04-24 00:15:23
136
原创 除留余数法及链地址法在单片机数据存储上的应用
除留余数法用于构造哈希函数链地址法用于解决哈希冲突假设有如下目标:将键值对[19:'a'、14:'b'、23:'c'、1:'d'、68:'e'、20:'f'、82:'g'、27:'h']保存到存储器上,要求能根据键快速地找出其值,且有一定的扩展性,即可以增加删除键值对接下来将利用除留余数法及链地址法实现目标这里先将链表大小(即链的数量,而非链的长度)定为7(实际应根据数据规模及可接受链长来定,且尽量为质数)将所有键分别对7取模得:5、0、2、1、5、6、5、6将键值对转化为16进
2021-04-23 10:52:03
299
原创 扩散算法的一种PHP实现,可用于数字加密/整数加密/id加密
扩散算法的一种PHP实现,可用于数字加密/整数加密/id加密,多少位数字扩散后仍旧为多少位,对于位数少的可以在前面补0后再扩散。还原时,输入参数的前缀0不能省略。扩散的最终效果是数字空间到数字空间的一种一对一映射,以00~99这100个数为例,扩散后的结果仍旧为00~99的100个数。扩散前的数字55,扩散后对应到哪一个数,由扩散过程及密码决定。此方法已发布为Composer包:composer require wpfly/crypto扩散算法原理参看:https://baike.bai
2021-04-23 10:18:55
1952
原创 转义与数据通讯
// 转义text.replace(escape, escape + escape);text.replace(delimiter1, escape + delimiter1);text.replace(delimiter2, escape + delimiter2);// 还原text.replace(escape + delimiter2 , delimiter2);text.replace(escape + delimiter1 , delimiter1);text.replace..
2021-04-22 20:23:08
432
原创 RSA加密解密的核心--快速幂取模算法原理
RSA加密解密撇除密钥的生成,其加密解密的核心就一个:快速幂取模RSA的加密规则:me≡c(mod n)RSA的解密规则:cd≡m(mod n)其中:m为明文,c为密文,ed≡1(mod φ(n))快速幂取模算法类似于快速幂算法,但要更复杂一点。//递归法function quick1($a, $b, $c){ if($b==1) return $a % $c; $temp = quick1($a, $b>>1, $c); return ($b&...
2021-04-06 21:10:53
5077
1
DirectoryChecker文件夹校验器
2021-04-24
PHPFileChecker文件检查器
2021-04-24
VC++实现的实时录播,实现录音设备的侦听效果
2020-11-27
基于jquery的图片自适应
2013-08-30
asp.net与javascript混合添加、删除、修改、读取cookie
2010-10-17
两种左连接查询方式哪种好?
2022-04-08
USB连接枚举过程协议分析疑惑
2022-02-21
求两个变量的最简表示方法
2019-11-13
activex控件调用dll问题
2017-01-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人