自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 百度网盘网页观看视频完整版,倍速,清晰度

别人分享的视频资料不想下载下来观看,打算直接点开连接在网页内直接观看,但是每个视频只能试看不能观看完整版。上个问题解决后想倍速观看视频,但是要百度网盘会员,在网上查到这个插件可以进行倍速。全屏观看网页视频清晰度不高,高清晰度也需要会员获取篡改猴的插件。在网上没找到解决方法。试了很多种方法后我就。搜索百度网盘视频播放器,下载这个脚本。,下次观看直接点击自己生成的链接。点击获取的插件后选择。

2023-12-26 10:56:53 5450 6

原创 QT实现四则运算计算器

【代码】QT实现四则运算计算器。

2023-12-16 17:20:28 661

原创 字形变换-头歌

将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行Z字形排列。之后,你的输出需要从左往右逐行读取,产生出一个新的字符串。示例 : 输入: s ="QAZWSXEDCRFVTG",numRows = 4 输出:"QETAXDVGZSCFWR"A->X->D对应代码中的注释部分。

2023-11-10 19:31:18 160

原创 PageRank算法c++实现

M=(1-d)*Q+d*A 常量矩阵Q=(qi,j),qi,j=1/n。首先用邻接矩阵A表示从页面j到页面i的概率,然后根据公式生成转移概率矩阵。ei=|Ri+1-Ri|,当ei

2023-11-04 16:40:09 318

原创 k-means算法c++实现

计算数据集中的元素与各个簇的中心的距离,将它赋给最近的簇,然后重新计算每个簇的平均值,再将元素按离平均值点最近的原则重新分配直到没有出现重新分配。用这个来标记每个数据在哪个簇中。该算法要事先给出k的值,即划分为几个簇。

2023-11-03 19:45:44 345

原创 DIANA算法c++实现

重复第二步的工作,直到没有新的old party中的点分配给splinter group且满足分裂的簇数k,如果没有到达终止条件,则从分裂好的簇中选一个最大的簇按刚才的分裂方法继续分裂。第二步 在old party里找出到splinter group中点的最近距离

2023-10-29 23:03:36 318

原创 DBSCAN算法c++实现

再判断这些直接密度可达点里如果有核心点则又将该直接密度可达点放进set subNeighbors,最后neighbors.insert(subNeighbors.begin(), subNeighbors.end());首先计算出距离每个点e以内的点,如果个数>=minPts,则找出它的直接密度可达和间接可达的点,用visited标记点是否已经在簇中,循环直到最后一个点。数据集:参考数据挖掘原理与算法第四版DBSCAN例子。

2023-10-27 19:09:29 565

原创 AGENS算法c++实现

cluster二维数组存放数据的编号,每次计算两个簇的距离,找出距离最近的,将其中一个簇的编号加入另一个编号的一维序列中,再将这个编号清除,之后再循环cluster。关键在于理解 distance(data[cluster[i][0]], data[cluster[j][0]]);数据2:data2.txt。

2023-10-26 20:50:46 283

原创 递归方法实现字符串反转函数

递归函数是一种在函数内部调用自身的函数。它通过将复杂的问题分解成更小的子问题来解决。递归函数通常包含两部分:基本情况和递归调用。请使用递归方法实现字符串反转的C语言函数。

2023-10-23 17:10:26 181

原创 KNN算法 c++实现

k-近邻(kNN, k-NearestNeighbor)是在训练集中选取离输入的数据点最近的k个邻居,根据这个k个邻居中出现次数最多的类别(最大表决规则),作为该数据点的类别。某班有14个同学,已登记身高及等级,新同学易昌,身高1.74cm,等级是什么。请用knn算法进行分类识别,其中k=5。

2023-10-18 16:30:21 675

原创 ESP8266获取网络时间 实时时钟

注意:这个代码存在的问题是比标准的北京时间慢两秒,因为每次调用网络API接口都会Delay2秒,所以可以只获取时间戳,加上两秒后再根据网上的代码将时间戳转换为具体的时间格式。可以看到发送完第九条指令后会收到如上图,所以整体思路:用串口进行通信,发送AT指令,获取到的数据存在Buf中,然后对Buf中的数据解析。6.发送指令AT+CIPSTART="TCP","api.k780.com",80 与服务器建立TCP连接;5.发送指令AT+CIPMUX=0设置模块为单路连接模式,模块默认为单路连接模式;

2023-08-15 15:43:49 5776 21

原创 实时时钟+闹钟

在江科大实时时钟的基础上添加闹钟的配置,参考。实现功能 :每隔time秒蜂鸣器响一次。前三个函数没有变,添加。

2023-08-12 16:11:22 239

原创 ADC模拟看门狗

如果被ADC转换的模拟电压低于低阀值或高于高阀值,AWD模拟看门狗状态位被设置。阀值位 于ADC_HTR和ADC_LTR寄存器的最低12个有效位中。通过设置ADC_CR1寄存器的AWDIE位 以允许产生相应中断。通过以下函数可以进行配置。使用光敏电阻模块,当模拟数值超过阈值,进入中断,即光线弱时led灯点亮。根据框图修改ADC一节的代码。添加看门狗功能代码和NVIC中断代码。

2023-08-03 15:45:25 1289

原创 读写BKP&实时时钟

再进行缩放 (32767-RTC_GetDivider())/32767.0 *999;用32767-RTC_GetDivider()使范围变为0-32767;没有备用电源,主电源断开后BKP中的数据是维持不了的。这样DIV由原来的32767-0变换为0-999数值表示毫秒。DIV的一个用途:如果要计数到毫秒等,按线性关系。思路(根据RTC基本结构)

2023-07-27 11:00:24 214

原创 BKP备份寄存器&RTC实时时钟

char *str;int main()//调用 time_t time(time_t*)获取系统时钟;//方法一//方法二//调用struct tm* gmtime(const time_t*)秒计数器转换伦敦时间(格林尼治时间)的函数//方法一对右边取内容//方法二将左边定义为指针类型。// 调用struct tm* localtime(const time_t*)秒计数器转换为日期时间(当地时间)//方法一对右边取内容。

2023-07-03 10:26:56 518 2

原创 软件SPI读写W25Q64&硬件SPI读写W25Q64

SPI模块包含通信引脚封装,初始化,SPI三个基本时序单元(起始,终止,交换一个字节)W25Q64通过调用SPI基本时序完成整个时序(写使能,页编程,擦除,读数据)主函数中调用W25Q64的硬件驱动层函数时序功能。

2023-06-24 16:40:56 1689

原创 SPI通信协议&SPI通信外设

推挽输出,高低电平都有很强的驱动能力,使得上升沿和下降沿都很迅速。当ss为高电平时,MISO默认为高阻态(高阻态相当于引脚断开,不输出任何电平)为了防止多个MISO冲突。

2023-06-24 15:00:51 939

原创 磁盘调度算法的模拟与实现

SCAN(电梯算法):要求磁头臂先沿一个方向移动,并在途中满足所有未完成的请求,直到它 到达这个方向上的最后一个磁道,或者在这个方向上没有别的请求为止,后一种改进有时候称作 LOOK 策略。然后倒转服务方向,沿相反方向扫描,同样按顺序完成所有请求。C-SCAN(循环扫描)算法:在磁盘调度时,把扫描限定在一个方向,当沿某个方向访问到最 后一个磁道时,磁头臂返回到磁盘的另一端,并再次开始扫描。磁盘调度算法: 磁盘调度的目的是要尽可能降低磁盘的寻道时间,以提高磁盘 I/O 系统的性能。按照书上的数据和扫描方向。

2023-06-11 15:54:44 248

原创 软件I2C读写MPU6050&硬件I2C读写MPU6050

初始化MPU6050将MyI2C封装,将发送数据接收数据,发送应答接收应答函数完成完整的I2C时序,进行对指定地址读,指定地址写。写6个基本时序单元的函数,然后将这些函数拼接起来写 发送数据接收数据,发送应答接收应答函数。

2023-05-31 15:03:08 407

原创 GPIO端口配置的8种模式

使用ADC时将引脚配置为模拟输入。

2023-05-31 15:02:53 369

原创 I2C通信协议&MPU6050

为了避免总线没协调好导致电源短路,配置为开漏输出,所有设备输出低电平不输出高电平,即右图。又为了避免高电平造成的引浮空,(第三点)总线外接上拉电阻(弱上拉)好处:1.避免短路问题;2.避免引脚模式频繁切换 开漏+弱上拉同时兼具输入输出。开漏模式输出高电平相当于断开引脚,在输入模式之前,可以输出高电平;3.这个模式下会出现“线与”现象,有一个或多个设备输出低电平总线低电平,全部为高电平才处于高电平,可用于多主机模式下时钟同步和总线仲裁。

2023-05-29 23:03:45 651

原创 串口发送&串口发送+接收&串口收发HEX数据包&串口收发文本数据包----USART

定义一个结构体变量但要分别调用 GPIO_Init(GPIOA,&GPIO_InitStructure);方法1:keil和串口助手都选择utf-8,且keil加上--no-multibyte-chars参数。方法2:都是用GB开头的中文编码格式,参数不用加。2. 多串口可以使用sprintf。头文件3. 封装sprintf。

2023-05-27 17:12:07 2055

原创 USART

同步按时钟,异步按比特率单端信号。引脚的高低电平都是对GND的电压差,所以单端信号通信的双方必须要共地即把GND接在一起差分信号。靠两个引脚的电压差来传输信号串口通信。

2023-05-26 16:29:36 89

原创 DMA数据转运&DMA+AD多通道----DMA直接存储器存取

定义一个变量在OLED显示屏上看到是0x2000开头的说明早SRAM上;在变量前加上const使其变成常量再查看地址以0x8000开头说明在Flash上,如果有一块不需要更改的数据较大的内容可以将它存储在Flash中以节省SRAM空间。对于外设寄存器它们的地址是固定的:先查寄存器所在外设的起始地址(第二章存储器映像),然后在外设的寄存器总表查偏移。结果是起始地址+偏移。定义一个外设结构体。

2023-05-23 23:42:12 166

原创 DMA直接存储器存取

所以DMA既是总线矩阵的主动单元,可以读写各种寄存器,也是AHB总线上的被动单元(CPU可以通过这条线路对DMA进行配置)如果是存储器到存储器的转运,把其中一个存储器的地址放在外设站点,将Flash或SRAM的地址写入外设的起止地址。软件触发:连续不断的触发DMA,把传输计数器清零,所以不能和自动重装器的循环模式同时使用。如果ADCA是单次模式,传输计数器可以不自动重装,如果是连续模式,可以使用自动重装。小数据传到大的中去,高位补零,大的传到小的高位舍弃。传输计数器:总共转运多少次,每转运一次计数器自减。

2023-05-21 11:34:49 481

原创 AD单通道&AD多通道----AD模数转换器

也不需要判断结束标志,将while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC) ==RESET);只需要触发一次,将ADC_SoftwareStartConvCmd(ADC1,ENABLE);对于连续转换,将ADC_InitStruct.ADC_ContinuousConvMode=ENABLE;通过参数传递来选择ADC通道。

2023-05-20 00:09:01 366

原创 ADC模数转换器

来源b站江科大stm32入门教程。

2023-05-19 16:34:28 680

原创 编码器接口测速----TIM编码器接口

可以通过Delay延时设置闸门和通过定时中断。一般选用定时中断闸门。

2023-05-18 14:56:45 109

原创 输入捕获模式测频率&PWMI模式测频率占空比----TIM输入捕获

来源B站江科大stm32入门教程。

2023-05-18 14:49:37 86

原创 PWM驱动LED呼吸灯&PWM驱动舵机&PWM驱动直流电机----TIM输出比较

为什么led为PA0引脚时要用TIM2的CH1引脚:在下标可以看出默认复用功能的引脚对应关系。同时也有重定义功能需要用AFIO配置,如果把引脚重定义到PA15,需要用到函数GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);然后再查看手册表43 TIM2复用功能重映像选择合适的参数。

2023-05-17 11:00:06 197

原创 TIM输出比较&TIM输入捕获&TIM编码器接口

来源B站江科大stm32入门教程。

2023-05-13 21:03:43 536

原创 定时器定时中断&定时器外部时钟----TIM定时中断

来源B站江科大stm32入门教程时钟源选择时基单元用TIM_TimeBaseInit()函数中断输出控制用TIM_ITConfig()函数NVIC用上一节的NVIC_Init()函数运行控制用TIM_Cmd()函数写预分频值的函数TIM_PrescalerConfig()改变计数器的计数模式TIM_CounterModeConfig()自动重装器预装功能配置TIM_ARRPreloadConfig()

2023-05-10 22:08:22 685 2

原创 对射式红外传感器计次&旋转编码计次----EXTI外部中断

来源B站江科大stm32入门教程根据EXTI基本结构(上个博客)配置。

2023-05-10 00:06:17 183

原创 高级 Web 技术实验⼀:基于 MyBatis 的校级课程管理程序

学院表和课程表之间是⼀对多的关系。课程表和学院表分别如表 1 和表 2 所示。4. 插⼊⼀条新的课程记录: names=”⼤数据存储“,hours=32,schools =1;请根据以上表的字段及值完成数据库建库及数据初始化的过程,逐步完成以下⼦任务。3. 将 id=4 这⻔课程的课时数修改为 32+8=40;现有⼀个课程表 c_course 和⼀个学院表。2. 查询出所有计算机学院开设的课程信息;1. 查询 id=2 的课程信息;5. 输出所有的学院开设的课程信息。建立c_course表。

2023-05-09 16:30:38 140

原创 按键控制LED&光敏传感器驱动蜂鸣器----GPIO输入

来源B站江科大stm32入门教程。

2023-05-09 00:10:04 196 2

原创 EXTI外部中断,TIM定时中断

注意:支持所有GPIO口,但相同的Pin不能同时触发中断NVIC是STM32中用来管理中断,分配优先级的使用NVIC统一管理中断,每个中断通道都拥有16个可编程的优先级可对优先级进行分组,进一步设置抢占优先级和响应优先级。

2023-05-08 16:44:13 459

原创 LED闪烁&LED流水灯&蜂鸣器-----GPIO输出

/外设时钟//配置端口//PP高低电平都有效,OD低电平有效//初始化while(1)//用GPIO的常用函数完成。

2023-05-04 12:59:58 322

原创 STM32新建工程

6、工程选项,Debug,下拉列表选择对应调试器,Settings,Flash。4、工程选项,C/C++,Include Paths内声明所有包含头文件的文件夹(比如上面新建的文件keil软件并不知道)3、工程里对应建立Start、Library、User等同名称的分组,然后将文件夹内的文件添加到工程分组里。2、工程文件夹里建立start、Library、User等文件夹,复制固件库里面的文件到工程文件夹。1、建立工程文件夹,Keil中新建工程,选择型号。在步骤2中根据此表选择启动文件。

2023-05-03 15:47:11 259

原创 创建进程-fork()和vfork()

可以看到调用fork函数,父进程执行打印ID号,打印出消息后,父进程被回收,此后子进程变成了孤儿进程,有init收养,此时父进程ID变成1163。使用vfork创建子进程时,操作系统并不将父进程的地址空间完全复制到子进程,用vfork创建的子进程共享父进程的地址空间。如果一个子进程的父进程先于子进程结束,子进程就成为一个孤儿进程,它由init进程收养,成为init进程的子进程。(1)fork创建一个子进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。

2023-04-16 19:50:59 94 2

原创 键盘高级操作技巧

自动补全也能对变量(如果 字的开头是一个”$”)、用户名字(单词以”~”开始)、命令(如果单词是一行的第一个单词) 和主机名(如果单词的开头是”@”)起作用。除了 bash 中的命令历史特性,许多 Linux 发行版包括一个叫做 script 的程序, 这个程序可以记录整个 shell 会话,并把 shell 会话存在一个文件里面。令历史特性,许多 Linux 发行版包括一个叫做 script 的程序, 这个程序可以记录整个 shell 会话,并把 shell 会话存在一个文件里面。接着输入你要寻找的字。

2023-03-30 22:59:59 167 2

计算机组成原理课程设计

ROM仿真 跑马灯 微程序 74LS181运算和逻辑功能 运算器

2023-03-02

空空如也

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

TA关注的人

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