自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (3)
  • 收藏
  • 关注

原创 万能引用、完美转发及其关系

本文介绍了万能引用、完美转发的实现,以及为什么完美转发需要依赖万能引用实现。

2024-02-28 19:52:41 826

原创 回溯法去重需要先排序

举个例子,对[4,4,4,1,4]获取全部子集并去重。如果不排序,那么对于树的第二层(第一层是空集),选取第一个4完成回溯后,直接来到1的位置,而1的后面还有元素4,则会出现[1,4]这个集合,而在之前的回溯过程中,已经出现了[4,1]这个集合了,也就是出现了重复。实际上,不排序得到的结果还有[4,1,4]和[4,4,1]重复,以及[4,4,1,4]和[4,4,4,1]重复。当我们排序之后,就变成了对[4,4,4,4,1](或者[1,4,4,4,4])获取全部子集并去重。

2024-02-21 22:12:55 422

原创 ESP32-BLE基础知识

描述了大小端存储、BLE设备地址、BLE的MTU、PDU和DLE

2023-11-20 23:04:41 1224 1

原创 RK3588的GPU驱动和桌面环境

有困难就会有人解决,据网友willzen所说,有大佬做了rk3588的开源GPU驱动,这个驱动支持完整的openGL,opi官方就是用的这个开源驱动去做的gnome桌面,但由于这个开源驱动不支持openCL,所以也只能选择wayland的显示方式,如果选xorg则会出问题。以上镜像,除了gnome之外,都是用的xorg的显示服务器,用的GPU驱动都是arm官方的闭源驱动libmail,只支持openGL ES和openCL。这里主要是以orange pi 5 plus为对象作一个简单的笔记。

2023-10-15 19:28:28 6074 1

原创 计组与操作系统

非科班出身的程序员,还是得补一下相关理论课程,最近看了下九曲阑干关于CSAPP的视频,学习了一下计算机组成原理,这里列一下相关知识点。

2023-09-14 19:49:16 196 1

原创 BLE架构与开源协议栈

这种模式下使用两个ESP32构成完整的蓝牙功能。后来又发现了应该算是老大哥的nordic家的nrf52系列, 用的是它们自己的softdevice协议栈,一主多从支持连接到20个设备,但是它的代码实在太复杂了,虽说代码解耦做得很好,但是后果就是需要去改好多文件,而且基于MDK那古老的界面那的确难受,接着还发现了nordic家新的sdk,也就是基于zephyr的NCS,基于vscode开发的确是舒服了些,但是又涉及到设备树相关的东西,上手难度还是有的(虽然仅做无线开发好像并不需要去改设备树)。

2023-09-08 00:03:00 1542 1

原创 ESP32-C3的存储器类型

内部 SRAM 中不用于指令 RAM 的部分都会作为 ​​​​​​数据RAM供静态数据和动态分配(堆)使用。可以看到.bss和.data以及.vector放在了DRAM里,小部分代码.text放在了IRAM里,两部分共占用了内部SRAM的53743字节,剩下的空间用作堆。构成了数据ROM(DROM)。除此之外,可可以通过分区表去设定Flash的分区,存储用户自定义的数据。.rodata是只读数据也就是常量放在了DROM里,大部分代码.text放在了IROM里,两部分共占用了118879字节。

2023-09-07 17:33:11 343

原创 nomachine连接无显示器的Ubuntu/Debian时黑屏

开启Linux的远程服务,这里以debian12的gnome环境为例,把远程桌面开了。上图的密码,就是远程登录时候要输入的密码,可以设置的跟用户密码一样,也可以不一样。除此之外,还有一个密钥环的密码。密钥环密码不为空白会导致登陆密码发生改变。当初次开启远程连接的时候,会弹出要设置密钥环的窗口,记得把密码设置为空白(是空白,不是0),不然每次重启Linux,上图的登录密码就会自己发生改变。如果没有弹出这个密钥环的窗口,可以去密钥管理的软件里面,把默认密钥环的密码设置为空白,如下图所示。

2023-09-01 20:15:10 4651 5

原创 树莓派/香橙派无法通过hostname.local访问

但是mDNS需要局域网内的路由器支持,如果发现无法通过hostname.local访问自己的树莓派啥的或者Linux服务器,不一定是因为mDNS服务没有安装好,而是由于你所在的局域网不支持mDNS,比如一些校园网就不支持mDNS,因此就无法访问。如果确定avahi已经安装并启动,仍无法通过hostname.local连上,可以尝试一下使用笔记本开启热点,让派连上这个热点,这样相当于换了个局域网,此时如果可以访问了,则说明是原先的局域网有问题,否则说明mDNS服务还是有问题。

2023-08-28 19:57:27 277 1

原创 Arduino开发板管理器搜不到ESP32

而这段时间,Arduino官方用ESP32-S3做了一个官方的板子,因此也为ESP32给了官方的资源,也就是下面这个,并且也只能搜到这个。如下图,第一个还是Arduino官方的,而第二个是乐鑫官方的,前者是后者的阉割版。所以,如果已经通过手动安装之类的方式安装过ESP32的Arduino包而又想更新的,只能继续通过原来的安装方式去进行覆盖更新。的方式安装过ESP32 Arduino的包,然后想升级成最新版本,即便添加了相关地址,也是无法在Arduino软件内搜到相关资源的。

2023-08-28 19:45:55 1001

原创 ESP32-连接参数/间隔更新

连接间隔是一个协商的过程,这篇文章介绍了连接间隔的更新过程

2023-08-13 19:55:25 526

原创 ESP-IDF插件去除红色波浪线

把这里的第一个文件夹删除,就是那个.vscode,接下来按ctrl+shift+P,输入vscode,如图,新装的ESP-IDF打开别人的工程有好多红色波浪线。选第一个,添加配置文件夹。

2023-08-11 17:34:03 467

原创 NRF52系列多个 base uuid 的问题,以client为例。

1. 16bit uuid一定是在128bit uuid的第三和第四个字节,这是标准、是规范。2. 按照规范来设置uuid,那么当只有一个base uuid 时,在对服务的uuid_type和16bit uuid进行对比之后,特性只需要对比16bit uuid即可。3. 如果不按照规范,即服务和特性的base uuid不同时,就需要向协议栈注册多个base uuid,并记录下对应的uuid_type(可以认为是该base uuid在协议栈中的编号)。

2023-05-30 13:23:59 1096

原创 华工研究生语音课

语音蕴含的信息、语音识别的目的语音的准平稳性、分帧、预加重、时域特征分析(能量和过零率)、端点检测(双门限法)语音的基频及检测(主要是自相关法、野点的处理)声音的产生过程(声门脉冲、声道模型、辐射),两大听觉特性(时频分析和掩蔽效应)LPC分析(原理、窗函数、建模为全极点模型、最小均方误差、系数的三种解法与对比)MFCC分析(Mel频率、Mel滤波器组以及这两者设计的原因:模仿人耳听觉特性。同态信号处理方法、复倒谱和倒谱、MFCC求法、差分MFCC)VQ(简要了解原理、知道一些聚类算法)

2023-05-11 01:35:24 506 1

原创 卡尔曼滤波的一个推导思路

卡尔曼滤波的推导思路与公式

2022-11-21 17:19:24 318 1

原创 MPU6050和OLED的IIC器件地址区别

MPU6050都说MPU6050的地址是0x68,拉高A0之后地址0x69。这里两个地址都是没有移动过的。在利用stm32HAL库函数时,我们要填的是右移了一位的地址,也就是0xD0或者0xD2。OLED都说OLED的地址是0x78,改了电阻之后是0x7a。这里两个地址都是右移了的,实际上它的器件地址应该是0x3C和0x3D才是符合规范的。但是用HAL库函数时,我们还是得填右移了的地址,也就是0x78或者0x7a。器件地址不按规范给出,以及库函数竟然要求填右移之后的地址,

2021-12-10 18:23:40 2362 4

原创 u8g2库stm32移植记录(硬件IIC)

这是用stm32cubemx,hal库,硬件IIC的方式移植u8g2的教程:0.移植其实非常简单,文中代码较多只是因为我把官方的模板放上来了,实际上要写的代码只有三部分,代码量非常小的!如果不想看那么多,那么跟着前7步更改完库文件,然后精确定位到红色字加粗的三段代码处,把他们复制粘贴到main.c里就可以了。1.cubemx创建一个IIC工程,速率最好设置为400K,快一点。然后连好线。2.下载u8g2库,选择csrc文件夹下的代码进行移植。3.将csrc文件夹内除了自己器件

2021-12-09 13:39:14 4708 6

原创 聊聊21电赛A题以及涉及到的信号知识

目录1 前言2 选题分析3 前置电路设计4 理论分析4.1.1 离散傅里叶变换基础4.1.2 采样点数和采样频率的确定4.1.3 频谱泄露与窗函数1 前言延期三个月的电赛终于在11.4-11.7进行了,如今各赛区的成绩也都出来了,很遗憾只拿了个省二,不过没关系,就当是大四枯燥生活的一点小插曲啦。虽然自己做得并不算很好,毕竟好像这道题很多满分的大佬,但还是决定记录和分享一下自己的思路,对比赛做一个复盘,为整个比赛画上一个圆满的句号。2 选题分析...

2021-11-20 15:29:33 11622 16

原创 CCF 201812-2 小明放学

题目不列了,直接说思路。记 t1 为一轮 "绿黄红" 的用时,即 t1 =g +y +r ;算法:如果小明刚出发时第n个红绿灯刚好切换为绿灯,即此时绿灯倒计时为g,他走到这个红绿灯用了total时刻,那么total对t1取余就是最新一轮 "绿黄红"已经经过了的时间,如果这个时间小于g,则是绿灯,否则需要等待,等待时刻为t1减去这个取余得到的值。但是怎么让出发时刚好为绿灯呢,可以让小明提前出门并且走慢点!举个例子:实际上:小明出门时某个灯为黄灯倒计时为x,小明走到过去用了total...

2021-09-11 16:14:02 174

原创 CCF 201903-2二十四点

题目不列了,直接说思路。我的想法是把全部数先换算成加法运算,比如5*4换成0+20,9/8换成0+1,9-8变成9+(-8),对这三种运算符进行处理之后再对四个数进行一次加法运算就ok了。至于为什么乘法和除法要把前一个换成0,因为算数是从左往右的,我得利用结果去做后一步的运算。举个例子,5*4/3,因为5*4的结果20是要再用来对3求模的,因此我是换成了0+20/3。整个程序里面,把符号和数分开存储,先遍历符号对四个数进行变换,最后对四个数求和即可。#include<iostream

2021-09-11 13:12:57 79

原创 CCF 202012-2期末预测之最佳阈值(前缀和)

题目就不列了,说说思路:定义的参数含义如下:1、定义一个node列表arr,里面包含y,实际结果result以及以这个y为阈值预测正确个数right2、定义一个int列表sum用于存前缀和,前缀和下标从1开始算比较方便,因此定义数组大小多13、定义一个y_last记录前一个y,我们是排序后再操作的,而且每个阈值只计算一次,如果当前y跟y_last相等,那么就跳过当前y,因为这个y已经作为阈值被计算过了。流程:1、把输入的值存进arr,然后按照y从小到大对arr排序2、按照排序后的

2021-09-10 20:25:33 265

原创 Tiva C(TM4C)的bootloader和启动过程与stm32对比

Gossip: 最近在咸鱼捡了个123GXL的板子,板子没到就先装好了环境,然后看了看资料,昨天板子到了,先点了个灯,然后把板子扔到一边又继续看资料。发现有些东西挺有意思的,比如它竟然出厂时在ROM中固化了库函数的二进制代码,用户程序可以直接跳转到ROM中去执行这些函数,那么Flash中就不必再存这些代码从而有更多的空间存其它数据了。boot loader:这玩意学习stm32时根本没听说过,倒是以前给手机刷机时知道要进这个地方,好像叫做程序引导器。在看Tiva...

2021-08-10 18:27:15 1168

原创 Tivaware中MAP前缀函数与ROM前缀函数的区别

Tiva C系列单片机的ROM中出厂自带了Driver Lib的二进制函数代码,如果直接调用这些ROM中的函数就可以减少用户代码在Flash中的占用(用户代码是存放在Flash中的),如此一来Flash就有更多的剩余而可以存更多的用户数据。而使用这些ROM中的代码的方法其实就是使用ROM_前缀的函数,函数列表在rom.h文件中有列出。但是ROM是只读存储器,数据无法更新,库函数版本自然也是比较旧的。因而如果有些函数太旧了或者有些函数是后来新增的原先ROM中并没有,则只能使用无前缀的函数了。为了让用户

2021-08-09 16:59:28 461

原创 MDK无法找到ICDI的解决方法

最近使用新版本的MDK,发现Ti的Stellaris ICDI调试器选项没了,因此TIVA C就无法直接使用keil来调试了。原来是新版本529之后都被移除了,但是keil官方有给出独立的调试器安装包,安装后就可以继续使用了。该支持包可在keil的网站找到,也可在我的主页分享的资源下载。...

2021-08-08 20:08:11 552

原创 Matlab做电路系统设计仿真

问题的提出 最近做期末大作业,题目是依据折线化的bode图设计一电路实现该频率响应。在做作业的过程中发现了一些小问题,故记录下来帮助自己记忆也希望能够帮助有需要的同学。 设计思路 其实思路非常简单,我们知道系统串联是做乘法运算,但是取了对数之后,串联就是加法运算了。那是由哪几个系统串联的呢,观察可知,图中有三段,斜率是0,-20,-60,那么这几个斜率对应的是啥系统嘛!看看下面几个图: 上面第一个图是有一定高度的斜率为0的直线,第二个图的折线某个频率...

2020-06-25 16:35:27 7944 1

原创 proteus8.9中8253仿真bug的解决方法

最近做微机实验时用到proteus做仿真,我的proteus版本是8.9的,做8253A计数器实验时候发现设定了方式3却自动变成了方式2,所以尝试更换以下模型,问题解决了。也就是说proteus8.9的8253模型有些问题。解决方法:下载低版本的82xx仿真模型 关闭proteus 打开安装目录下的MODELS文件夹将原先的82xx.DLL备份一下以防出错 将下载的模型替换掉原先的82xx.DLL 再次打开模型运行仿真模型,问题解决!模型下载链接:...

2020-06-17 13:54:05 3599 6

原创 stm32驱动BMP388温度气压传感器

最近在搞一个小东西用到了气压传感器,最终选择了BMP388。搜索发现网上关于388的资料少之又少,官方给出的Arduino代码几千行全是英文注释。。。所以去翻看了一下数据手册做了些笔记,分享出来希望帮助有需要的同学。第一次发文章如有错误还请海涵。下面先贴上成功的图片: BMP388的一些特性介绍:它有FIFO存储器,可以不断采集数据存入其中然后一次读出,不使用。 有中断引脚,可产生FIFO溢出中断或者数据准...

2020-06-02 21:52:41 5660 17

TM4C123GXL.zip

TM4C123GXL Launchpad的相关资料,英文版本,资料很全,涉及到boot loader,ROM前缀函数的API,以及Tivaware的使用方法等等。

2021-08-11

MDK_Stellaris_ICDI_AddOn.exe

最近使用新版本的MDK,发现Ti的Stellaris ICDI调试器选项没了,因此TIVA C就无法直接使用keil来调试了。原来是新版本529之后都被移除了,但是keil官方有给出独立的调试器安装包,安装后就可以继续使用了。

2021-08-08

BMP388代码和资料.zip

BMP388数据手册以及stm32代码,用的官方标准库以及模拟IIC协议,容易移植,点击本人主页有相关教程

2020-06-02

空空如也

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

TA关注的人

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