自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32F767串口通信------USART中断接收

1.基础配置点击右边NVIC将USART3 全局中断优先级改为1.点击右上角生成代码。2.编写代码由CubeMX提供IRQhandler函数,需要自己写callback函数,查询手册.简单介绍下函数执行顺序,当单片机接收到信息,先进入USART3_IRQHanderler函数,如图,在stm32f7xx_it.c下。...

2019-07-31 10:05:23 2217

原创 简单说明四元数的旋转计算

将一个点(a,b,c)以一个空间向量 v=(x,y,z)为轴旋转角θ。可设 四元数q = ( (x,y,z)*sin(θ/2) , cos(θ/2) );四元数p = ( (a,b,c), 0 )则q的共轭q* = ( -(x,y,z)*sin(θ/2) , cos(θ/2) )q^(-1) = q*/(|q|^2)若q为单位四元数,则q*=q^(-1)进行计算 p' =...

2019-07-28 16:42:51 2825

原创 STM32F767ZI新手入门多图教程------定时器1生成四路PWM波

1.设置时钟2.设置分频和计数器分频2,计数器7199,可根据实际需要自行更改。3.设置时钟树,根据需要自行更改4.生成代码5.打开main.c,如图写入代码6.烧写程序,查看引脚图这里使用PE9,PE11,PE13,PE14引脚在开发板上用示波器测引脚,即可得到变化的PWM波。...

2019-07-27 15:19:44 793

原创 简述PID算法与PID简单调参实例

先放结论:PID算法是通过在运行过程中不断改变输入来获得稳定的输出。图中各项意义是:输入值r(t),输出值c(t),偏差值e(t) = 输出值-输入值其中Kp为比例系数;T1为积分时间常数;TD表示微分时间常数,得到稳定值的关键是调整好3个参数。各环节作用:比例环节:偏差一旦产生(e(t) != 0),立刻产生控制作用(增大或减小输入u(t)),以减小误差。积...

2019-07-11 10:37:23 2230 3

原创 STM32F429新手入门多图教程---DAC正弦输出

硬件:野火STM32F429开发软件:CubeMX概述:TIM6为DAC供能,DAC将调用DMA功能。所以DMA与TIM6必须在DAC调用前激活。①创建项目,设置晶振。②打开DAC进行如下操作:点击ADD,如下设置③打开TIM6,进行如下设置。点击ADD进行如下操作④:设置分频⑥打开main.c,添加如下数组。uint32...

2019-03-29 21:54:18 3382 1

原创 STM32F429新手入门多图教程---PWM输出

硬件:野火STM32F429软件:CubeMX①建立工程文件,设置晶振时钟这里不再赘述。②调整TIM3时钟,如图设置。Prescaler 预分频器 ------(TIMx_PSC寄存器)Counter Period 到达此数后计数器置零。Pulse值存在ARR寄存器中,当计数器大于此值输出高电平(PWM mode 2)/低电平(PWM mode 1)。③设置时钟...

2019-03-28 20:25:52 2800 3

原创 STM32F429新手入门多图教程---串口通信

先在STM32F439xx_User_Manual中查询需要用到的函数。串口通信与USTRT 有关①建立项目,选择单片机芯片,进入RCC选择时钟。②在底板原理图中找到需要的引脚。③找到USTRT1,将Mode设置成同步模式(Synchronous),同时设置波特率(Baud rate)这里使用115200。④设置时钟,分频25,倍频360.⑤为项目命名,...

2019-03-24 16:40:30 2218

原创 STM32新手入门多图教程---按键控制LED

硬件:STM32F429开发板软件:STM32CubeMX + keil 5①新建项目,选择对应的芯片(这里STM32F249IGTx为例),设置RCC,选择晶振Crystal②设置引脚,经查阅LED1为PH10,K2为PC13(选择K1,K2均可),可知按键未按下时为低电平,LED点亮时为低电平。③右图芯片部分设置引脚,PC13选择GPIO_Input模式,LED选择...

2019-03-24 15:28:22 1512

原创 STM32F429新手入门多图教程---跑马灯

硬件:野火STM32F429开发板软件:STM32CubeMX+Keil 5①打开CubeMX,新建项目,左上角搜索单片机名称,选择STM32F429IG,右下角选择STM32F429Tx。②左边,选择System Core--Rcc --HSE选项选择Crystal。③查询STM32F429原理图,得到LED引脚④在右侧芯片将PH10,PH11,PH12激活,选择...

2019-03-24 00:12:23 3155

原创 LeetCode------最长回文子串

https://leetcode-cn.com/problems/longest-palindromic-substring/给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"四种算法:一...

2019-02-27 07:50:41 119

原创 LeetCode------快乐数

https://leetcode-cn.com/problems/happy-number/编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。示例: 输入: 19输出: true解释: 1^...

2019-02-22 15:19:03 130

原创 LeetCode------颠倒数组

https://leetcode-cn.com/problems/rotate-array/给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋...

2019-02-21 16:46:56 251

原创 LeetCode------有序数组转换为二叉搜索树

https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0...

2019-02-20 10:54:50 126

原创 LeetCode------二叉树最大深度

https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \...

2019-02-20 09:46:43 137

原创 LeetCode------对称二叉树

https://leetcode-cn.com/problems/symmetric-tree/给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ ...

2019-02-19 23:25:11 114

原创 LeetCode------相同的树

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

2019-02-18 19:24:05 148

原创 LeetCode------删除链表重复元素

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3...

2019-02-17 18:13:35 115

原创 LeetCode------爬楼梯

https://leetcode-cn.com/problems/climbing-stairs/假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入...

2019-02-17 16:07:52 103

原创 LeetCode------x的平方根

https://leetcode-cn.com/problems/sqrtx/实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842...,   由于返回类...

2019-02-17 15:49:53 150

原创 LeetCode------二进制求和

给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"解题关键:解决各位进位判断,本人做法是先不考虑进位,短数组加到长数组上,再根据长数组依次判断进位。char

2019-02-17 14:34:44 93

原创 LeetCode------加一

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321...

2019-02-17 13:53:43 111

原创 LeetCode------最后一个单词长度

https://leetcode-cn.com/problems/length-of-last-word/给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5 解题关键:重点处理首段空格,尾段空格,单...

2019-02-17 13:35:03 120

原创 LeetCode------最大子序和

https://leetcode-cn.com/problems/maximum-subarray/给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。方法1:暴力解法,但是仍然需要一些技巧,否则...

2019-02-16 20:46:22 106

原创 LeetCode------报数

https://leetcode-cn.com/problems/count-and-say/报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作  "one 1"  ("一个一") , 即 11。11 被读作 "two 1s" ("两...

2019-02-16 18:40:30 738

原创 LeetCode------搜索插入位置

https://leetcode-cn.com/problems/search-insert-position/给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1...

2019-02-16 17:06:39 105

原创 LeetCode------移除元素

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

2019-02-16 16:34:45 93

原创 LeetCode------实现strStr()

实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回  -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needl...

2019-02-16 12:25:29 108

原创 LeetCode------删除排序数组的重复项

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], ...

2019-02-16 11:12:42 179

原创 LeetCode------合并两个有序链表

https://leetcode-cn.com/problems/merge-two-sorted-lists/将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解题关键:考察链表基本操作。/*...

2019-02-15 13:57:21 117 1

原创 LeetCode------最长公共前缀

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

2019-02-15 12:39:55 88

原创 LeetCode------有效的括号

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

2019-02-14 19:29:10 112 1

原创 LeetCode------罗马数字转整数

https://leetcode-cn.com/problems/roman-to-integer/罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D ...

2019-02-13 19:43:53 98

原创 LeetCode------回文数

https://leetcode-cn.com/problems/palindrome-number/判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。...

2019-02-13 15:19:00 127

原创 LeetCode------Twosum

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

2019-02-13 12:01:25 122

原创 LeetCode------整数反转

https://leetcode-cn.com/problems/reverse-integer/给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 题目并不难,重点在于处理溢出问题。 INT_MA...

2019-02-13 11:40:04 100

原创 计算机开平方的三种算法

要学好计算机,就要学会像计算机一样思考。对于一个数 x = 9 ,求,你会毫不犹豫地回答3;如果 x = 784 ?你也能在第一时间说出答案吗?计算机并不像人一样聪明,它只能按照事先规定好的步骤一步一步地进行, 我们称之为算法,算法的魅力就在于能够指导计算机快速精确地解决问题。 以下介绍三种开平方算法。 ①穷举法(屎一样的算法,建议从后两个算法看起):当人看到x = 9...

2019-02-03 22:20:33 20913

原创 计算机组成原理(九)

数据校验:①奇偶校验:增设一位校验位,从而使1的个数是奇数或者是偶数例:待编码信息        10110001奇校验编码        10110001 1     -----5个‘1’偶校验编码        10110001 0     -----4个‘1’局限性:不能发现偶数位(2/4/6/8...)错,不能定位错误②海明校验:是一种多重分组奇偶校验,将代...

2019-02-02 17:38:49 267

原创 计算机组成原理(八)

一、补码加减法:(X + Y)补 =  X补 + Y补(X - Y)补 = X补+(-Y)补(-Y)补 = (Y补)变补变补运算:不管正负,符号位取反,尾数变反,末尾+1溢出判断:溢出只可能出现在[正]+[正],[负]+[负],的情况当参加运算的两个数的符号(正负)相同,而结果则与这2个数的符号不同,即为溢出。 二、原码加减运算:先比较符号:加法...

2019-02-02 14:03:24 826 4

原创 计算机组成原理(七)

计算机数据处理与储存:一、移位操作:分为逻辑移位与算数移位①正数补码和原码移位规则:符号位不变(双符号位第一位不变),空位补0.②负数补码移位规则符号位不变(双符号位第一位不变),左移补0,右移补1(第二符号位移到尾数第一位) 二、舍入方法①:0舍1入(原码、补码)②:末位恒置1(原码、补码) 三、数位拓展与压缩:①符号拓展:直接将符号位...

2019-02-02 12:25:48 3433 1

原创 计算机组成原理(六)

字符表示方法:一、ASCII码:字符总数128,代码宽度7b,存储宽度8b(7b有效位+1b奇偶校检位,奇偶校检是一种检验代码传输正确性的方法)二、汉字编码:①汉字输入码:包括数字码、拼音码、字形码数字输入码:将6763个二级汉字(汉字分为一级字库和二级字库,一级字库中汉字是按拼音顺序编码,是通常用的汉字,二级字库是不经常用的汉字,是按汉字的部首笔划顺序编码的.)分为94X94的二...

2019-02-02 11:39:05 356

空空如也

空空如也

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

TA关注的人

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