自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (6)
  • 收藏
  • 关注

原创 串级PID结构及参数调整见解

在设计控制系统中,常用的控制算法为PID,即比例、积分、微分控制器。能够实现对控制对象的物理特性的控制,以期达到特定的运行效果。此外由于PID控制器的灵活特性,可以与其它控制算法进行灵活的组合。在这里以四旋翼飞行器中的俯仰角pitch为例,采用串级PID控制算法进行简要说明。首先的第一个问题,PID控制器在控制过程中,是如何实现对被控对象的控制的?比如设定四旋翼飞行器以仰角为5°的姿态飞行...

2019-05-27 14:46:36 12380 7

原创 基于STM32-RTX-FATFS-U盘操作实现.ini文件读写操作

INI文件以良好的可阅读与修改特性,在程序运行初期,能够提供一些初始变量。使用C++进行程序编写过程中,微软官方提供了良好的文件操作API,便于直接使用。但是在嵌入式操作系统中,缺乏一套良好的方法。现参考https://github.com/wernsey/rengine/blob/master/src/ini.c提供的方式,结合STM32进行实现。另附工程源码。本文基于RTX嵌入式操作系统和...

2019-04-26 18:38:48 3042 2

原创 Keil自带RTOS操作系统验证例程在STM32上实现

Keil自带的嵌入式操作系统上手简单,配合其自带的教程很容易入门。附例程代码学习过程中发现一个很有趣的验证实验该实验例程包含所有关于RTOS操作系统的例程,方便新手对于嵌入式系统的学习和使用。接下来详细说明以下如何创建该项目。本例程以STM32F103ZE为例,首先创建一个相关项目。其次,加载运行环境按照图中所示打勾即可。接下来右键Sou...

2018-06-28 16:35:39 5066

原创 使用CMake构建qcustomplot

基于CMake的Qt5,使用qcustomplot库绘图

2022-07-12 22:11:44 563 1

原创 SX1278 移植笔记

概述项目代码链接。SX1276/77/78所用驱动均相同。SX1278具有LoRa和FSK的调制解调能力1,本过程移植的是LoRa功能。底层代码移植在移植过程中对代码进行了精简,将关于FSK通信部分的代码全部删除。只要是关于FSK的代码和宏定义全部去掉。名称用途适配platform.h平台配置文件需要radio.c无线通信接口源文件,提供无线通信主要实现方法radio.h无线通信接口头文件,提供声明sx1276.csx1276/77/78芯片初

2020-08-15 17:20:13 1978

原创 STM32基于Cube实现USB虚拟串口

版本软件版本Cube:5.4.0HAL:STM32Cube FW_F4 V1.24.2Keil:V5.25.2.0硬件版本STM32F407ZGT6目标实现USB虚拟串口功能。重点HeapStack的配置读操作CDC_Receive_FS的改写项目工程源码链接过程Cube配置RCC配置使能外部和内部时钟。SYS配置使用SWD调试,时间基准源采用SysTick。USB_OTG_FS配置该配置选择Device_Only模式,其他配置默认即可。

2020-08-13 10:09:25 2542 2

原创 Python03——异常处理——Python和C#简单对比

心得异常处理在C#中接触过,形式大致相同。PythonC#try-excepttry-catchtry-except-finallytry-catch-finallytry-except-else异常是程序在运行过程中检测到了错误,从而触发了计算机预定的异常处理程序,然后根据异常错误信息进行相应的处理,而不影响程序大体的正常运行1。错误的出现并不总是编写程序的人的原因2,也有可能是用户导致的。比如程序需要通过用户输入获取一个整型变量,但是用户在实际输入过程中可

2020-07-24 21:21:30 229 1

原创 Python02——条件循环——推导式+循环分支

心得python的条件循环结构大体同C、C#一样,感触最大的不同点在于python中的循环结构有else分支,这一点确实比较新奇。python的for循环更加多样化,同C和C#中的for不同的是,python中的for循环是一个迭代器,可以遍历任何有序序列,也可以遍历任何可迭代对象。迭代器这个有点像C#中的foreach(我先学的C#,所以这里将python作为后来者进行对比)。不过在使用python的for循环过程中,有一点不太方便的地方在于更改其索引序号。当然从换一个角度,可以使用while循环实现

2020-07-23 22:44:44 260

原创 Python学习01——变量、运算符、数据类型及位运算——C、C#比较

这里写自定义目录标题Task01——变量、运算符、数据类型及位运算注释运算符算术运算符比较运算符逻辑运算符位运算符三元运算符其他运算符PythonC#运算符的优先级变量和赋值数据类型与转换Task01——变量、运算符、数据类型及位运算今天开始新的征程——Python系统化学习。从入门开始,借助这个机会也想比较一下Python、C、C#语言之间的异同。从最基础的开始,认识编程世界里面的基石——变量、运算符、数据类型及位运算。注释语言类别PythonCC#单行注释#///

2020-07-21 22:23:41 304

原创 PS学习理解

写在最前面,课程资源由慕课提供,听取的课程是由浙江大学刘国柱老师主讲的Photoshop精讲精练。有兴趣的朋友可以点击连接进行学习。学习PS有20天左右了,总共47课时的学习课程,已经走过了20课时,在此期间初步掌握了使用PS的基本技巧,主要有以下几个方面:PS软件界面的构成,对工具软件有一个感性认识; PS常用工具的学习和初步使用,了解常用工具的位置及其简单作用; 认识PS对选区的设...

2020-04-12 17:42:05 535

原创 Task27——分发饼干

题目:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口值...

2020-03-27 20:21:15 149

原创 Task26——判断子序列

题目:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例 ...

2020-03-26 22:31:53 139

原创 Task25——买卖股票的最佳时机

题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出...

2020-03-25 19:40:09 133

原创 Task24——恢复二叉树(待更新)

题目:二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例 1:输入: [1,3,null,null,2] 1 /3 \ 2输出: [3,1,null,null,2] 3 /1 \ 2示例 2:输入: [3,1,4,null,null,2] 3/ \1 4 / 2...

2020-03-24 22:55:37 137

原创 Task23——不同的二叉搜索树 II(带更新)

题目:给定一个整数 n,生成所有由 1 ... n 为节点所组成的二叉搜索树。示例:输入: 3输出:[ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉搜索树: 1 3 3...

2020-03-23 22:37:02 284

原创 Task22——二叉树的中序遍历

题目:给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?解题:递归算法/** * Definition for a binary tree node. * public class TreeNode { *...

2020-03-22 10:03:54 162

原创 Task21——二叉树的最大深度

题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。解题:/** * Definition for a bina...

2020-03-21 19:59:48 108

原创 Task20——对称二叉树

题目:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代...

2020-03-21 00:03:05 144

原创 Task19——相同的树

题目:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: ...

2020-03-19 23:03:44 86

原创 Task18——正则表达式匹配(待更新)

题目:给你一个字符串s和一个字符规律p,请你来实现一个支持 '.'和'*'的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。说明:s可能为空,且只包含从a-z的小写字母。 p可能为空,且只包含从a-z的小写字母,以及字符.和*。示例 1:输入:...

2020-03-18 23:54:49 107

原创 Task17——最长回文

题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"解题:public class Solution { public string LongestPalindrome(strin...

2020-03-17 22:09:09 99

原创 Task16——无重复字符的最长子串

题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长...

2020-03-16 21:57:55 124

原创 Task15——有效的括号

题目:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出...

2020-03-15 11:59:28 118

原创 Task14——最长公共前缀

题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。解题:public class...

2020-03-14 10:33:40 121

原创 Task13——罗马数字转整数

题目:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并...

2020-03-12 20:56:05 130

原创 Task12——合并K个排序链表

题目:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6解题:/** * Definition for singly-linked list. * s...

2020-03-12 20:43:09 124

原创 Task11——删除链表的倒数第N个节点

题目:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。解题:/** * Definition for singly-linked list. * s...

2020-03-10 22:33:41 126

原创 Task10——两数相加

题目:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0...

2020-03-10 22:27:38 195

原创 Task9——环形链表

题目:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0...

2020-03-08 22:42:05 121

原创 Task8——删除排序链表中的重复元素

题目:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3解题:/** * Definition for singly-linked list. * struct ListNode {...

2020-03-08 22:37:45 173

原创 Task07——合并两个有序链表

题目:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解题:/** * Definition for singly-linked list. * struct ListNode { * ...

2020-03-06 22:22:11 108

原创 Task06——买卖股票的最佳时机 III(有待更新)

前言:本题自己还没有思考明白,先借鉴网上的方法进行提交,随后在更新自己的理解。本题使用C#编程。题目:给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [3,3,5,0,0,3,1,4]输出: 6...

2020-03-06 22:15:47 109

原创 Task5——最接近的三数之和

前言:本题采用C#编程。题目:给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).解...

2020-03-05 20:35:46 154

原创 Task4——三数之和

目录前言:题目:解题过程:解题结果:解题思路:来源:前言:由于不太清楚官方给出的C代码接口格式,所以本题使用C#进行解答。题目:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 num...

2020-03-03 22:27:16 152

原创 Task3——移除重复元素

前言:本代码使用C语言完成。题目:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应...

2020-03-03 08:51:45 149

原创 Task2——删除排序数组中的重复项

前言:本题采用C语言解答。题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组...

2020-03-01 22:07:34 106

原创 Task1——两数之和

题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解...

2020-03-01 09:07:35 209

原创 使用CefSharp动态爬取天天基金网历史基金数据——数据存储(二)

初步爬取到需要的数据之后,需要将数据存储到外部文件中以方便数据处理。本文中采用Excel存储爬取到的数据内容。与本次设计的数据爬取采用C#中的DataGrid进行显示,爬取指定基金号码的历史基金数据,并将其保存于软件所在根目录。软件见链接。使用Excel之前,需要加载Microsoft.Office.Interop.Excel 使用Excel的步骤大概分为以下步骤: 加载指定路径文件,本文...

2020-02-03 20:20:50 1259

原创 使用CefSharp动态爬取天天基金网历史基金数据——动态爬取(一)

确保安装CefSharp软件包,相关安装步骤可以自行搜索 CefSharp相关信息可在网上搜索,在这里主要使用到它作为浏览器的功能 思路: 使用CefSharp打开相关网页,以http://fundf10.eastmoney.com/jjjz_004719.html为例,代码如下: private void btn_Click(object sender, RoutedEventArg...

2020-01-28 11:26:09 2296

原创 IOT学习计划——开发板&课本到手到手

一次偶然的机会,在STM32公众号中得知有RT-Thread这款嵌入式操作系统。打开其官网发现,这是一款国产化的操作系统,常见的嵌入式操作系统的东东,它都有,尤其是它还支持扩展第三方平台软件,比如MicroPython。此外因为是国人写的操作系统,所以资料上手学习很方便,在了解到的第一晚便从淘宝淘得一本开发教程《嵌入式实时操作系统RT-Thread设计与实现》。经过一天左右的时间,大致看了...

2019-10-12 22:29:51 923 2

cmake+qt+qcustomplot

cmake+qt+qcustomplot

2022-07-12

STM32F407ZG_VCP.zip

通过USB虚拟串口,节省硬件串口设计。内部包含工程使用说明,Cube和Keil工程,和ST官方虚拟串口驱动。

2020-08-13

CefSharp动态爬取天天基金历史数据(非源代码)

动态爬取天天基金历史数据,并存储。详情见博客《使用CefSharp动态爬取天天基金网历史基金数据——数据存储(二)》

2020-02-03

SerialPort.rar

关于本资源的说明博客见连接:https://blog.csdn.net/KingQian2018/article/details/92565131

2019-06-23

基于STM32-RTX-FATFS-U盘操作实现.ini文件读写操作

使用STM32生成可以读写INI文件的工程,工程基于RTX嵌入式系统和Fatfs文件操作系统。

2019-04-26

Keil自带操作系统验证例程在STM32上实现

基于Keil自带的嵌入式操作系统在STM32环境中进行验证实验

2018-06-28

空空如也

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

TA关注的人

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