自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 滑动窗口

遇到子字符串的题目一般都用 “前缀和” 和“滑动窗口”两种解算方法。解法一(暴力解) class Solution { public: int minSubArrayLen(int target, vector<int>& nums) { int sum; int ans = INT_MAX; for(int i =0; i < nums.size();i++){ sum =0; ..

2021-04-14 15:38:32 144

原创 进程同步、互斥,用信号量机制实现互斥

原视频链接进程同步:实际是用来表述不同进程之间存在制约关系。进程互斥:进程互斥的软件实现方法:进程互斥硬件实现方法:中断屏蔽方法:TestAndSet指令 TS指令:Swap指令 又称 Exchange 或XCHG指令。信号量机制...

2021-04-06 08:28:40 538

原创 冒泡 选择 快排

学习:冒泡、选择图解看这个链接<注意:!!里面程序是不对的,但是冒泡和选择的算法可视化做的很清楚>快排算法基本思想<主要包含两种:挖坑和双指针>大佬写得快排C++实现根据题目写几种排序算法:lc选择排序:class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int j =

2021-04-05 14:59:59 157

原创 数组_大根堆_第K大

学习部分:大跟堆图解lc:解答:class Solution {public: void maxHeapfy(vector<int>& nums , int i , int heapSize){ int l = 2*i+1; int r = 2*i+2; int large = i ; if(l< heapSize && nums[l] > nums[large]){

2021-04-04 23:27:52 188

原创 处理机调度

调度:调度:高级调度、中级调度、低级调度进程调度问题:时机:重要!!!:进程调度方式:调度算法评价:CPU利用率:CPU忙率时间/总时间系统吞吐量:周转时间:带权周转时间:等待时间:响应时间:调度算法:先来先服务:短作业优先:非抢占式:也是干完一个再干一个抢占式:高相应比优先算法:以上算法用户交互体验较差,适合早期批处理。时间片:非抢占式:一个任务完成之后,从剩下的里面挑一个优先级高的完成。抢占式:

2021-04-04 19:44:15 96

原创 进程的 组成 组织 特征 状态 控制 通信 线程

总体来说,进程实体是静态的,进程是一个动态的过程。如果不特别说明可以把进程实体简称为进程。重点:。进程的组织:进程的特征:进程的三种状态:重要!!!:进程控制:简单来说,进程控制就是实现进程状态转换进程通信:共享存储、管道通信、消息传递线程:线程的实现方式:多线程模型:多对一、一对一、多对多总结:...

2021-04-04 15:49:41 143

原创 系统调用 中断 大小内核

中断:

2021-04-04 10:00:35 110

原创 数组_双指针_3

基本思路:用两个指针分别指向头部和尾部,一个动指针实现遍历,如果动指针发现0,就换到前面去,如果发现2就换到后面去。自己最开始写得代码(没有通过):class Solution {public: void sortColors(vector<int>& nums) { int right = nums.size() -1; int left = 0; for(int med = 0; med < ..

2021-04-01 16:54:38 112

原创 数组_双指针

今天的目标:多写几个题目,总结双指针题目:q1 lc27解答如下:class Solution {public: int removeElement(vector<int>& nums, int val) { int left =0; for(int right = 0; right < nums.size() ; right++){ if( nums[right] != val ){

2021-03-30 22:41:06 269

原创 操作系统概念、特征、发展阶段、运行机制和体系

计算机系统层次结构

2021-03-30 08:30:04 165

原创 数组二_移动零

自己写的代码:  基本思路:      看见“0”就删掉,并记一下删除的个数,最后在结尾把删除的“0”都补上。class Solution {public: void moveZeroes(vector<int>& nums) { int cunt = 0; for(int i = 0; i <nums.size();i++){ while(nums[i] == 0 .

2021-03-29 23:36:51 131

原创 数组1

自己第一遍的做法:class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> arr; vector<int> sub_arr; int target; int num ; sort(nums.begin(..

2021-03-28 21:37:08 108

原创 JAVA初学——找不到或无法加载主类

最近刚写java,很简单的一个程序却总显示:“找不到或无法加载主类 DAGTestDriv”以下是程序:class DAG{ String name ; String color; void bark() { System.out.println("ruff!ruff!"); } } class DAGTestDrive{ public static void main(String[] args){ DAG

2020-12-21 20:53:30 299

原创 正点原子学习笔记(六)——端口复用

端口复用的配置过程:1.GPIO端口时钟使能2.复用外设时钟使能3.端口模式配置*看STM32中文参考手册中8.1.11小节内容,判断复用时端口的状态和模式 *端口重映射端口的重映射也是需要查芯片手册,看看能对应到哪个引脚上。一个外设可能有好几个引脚,部分重映射就是把其中几个引脚重映射到其他的引脚上,其余的使用原来的引脚。完全重映射就是把几个引脚全部映射到其他的引脚上。完全重映射:重映射的配置过程:1.使能GPIO时钟(重映射之后的GPIO)2.使能外设时钟3.使能复用时钟4.开

2020-08-29 09:44:16 525 1

原创 链表学习部分笔记

整篇文章参考B站: https://www.bilibili.com/video/BV1Jt4y1S7nW链表有俩部分:一部分是节点,另一个是不同节点之间的连接。下面是部分具体的例子#include <stdio.h>#include <stdbool.h>#include <stdlib.h>//说明数据的类型struct Node { //里面放的内容 int data; //连接 struct Node *pNext;}//给结构取别

2020-08-28 14:58:56 134

原创 SPI通信协议

参考:B站EOAST 视频SPI通信协议(SPI总线)学习同步、全双工、串行主从工作方式SDO :主设备数据输出SDI :主设备数据输入SCLK :主设备产生的时钟信号CS(SS/NSS) :片选信号与IIC相比,IIC一次必须传送8位数据,但是SPI不需要,可以一位一位传送,完全由SPI的时钟线控制,它可以全双工通信。但是SPI没有应答机制,而且如果是多个从机的话需要很多IO口去连接不同从机的CS端,这种情况下相对IIC来说更麻烦一些。在使用的过程中需要注意:假设CS低电平是 使

2020-08-14 13:07:58 461 1

原创 RS485 和RS232

RS485 和RS232参考:B站创客学院视频这两个协议是物理层的协议,依赖于uart。它只是在物理层做了一个改变(增加了TTL和232电平转换的芯片,以达到减少信号干扰,提高传输距离的目的)。RS232RS232产生的背景直接使用串口会有一些问题:电器接口不统一——串口只规定了时序(起始位和终止位之类),但是并没有规定电器接口。uart一般用得是板子上的(处理器电平)TTL电平,不同的板子的TTL电平是不一样的。有5V,有3.3V,(这个和芯片的生产厂家有关系)。抗干扰能力比较差——UART

2020-08-13 10:25:28 429

原创 UART & IIC

基础知识并行和串行并行用的通道比较多,而且信号和信号直接按会有一点干扰,所以,嵌入式很多都是串行通信。波特率用于描述UART通信时的速度,单位为bsp(bit per second)uart一种通信协议。在嵌入式用的最多。通用的串行、异步通信总线有两根线,一个rx 一个tx ,全双工点对点通信uart 通信过程/原理串口在空闲的时候必须是高电平。 在串口协议中先发送低位再发送高位。比如:0x55,发送的是10101010。uart是异步通信,收发双方没有统一的时钟,所以上面的

2020-08-12 22:56:51 505 2

原创 串口助手乱码

问题描述开发板A的uart串口,用串口助手和电脑连接总是显示乱码:最开始用U转串线连接板子和电脑——可能电平不匹配导致的乱码;之后换了两块USB转TTL电平模块,串口助手都是乱码;我怀疑是程序的问题发送0x55、0xff到uart,用示波器测试都是正常的信号;难道我拿到的USB转TTL模块都有问题?????解决思路(感谢xy)用开发板A作为发送端,用开发板B(提前测验过,可以正常使用)作为接收端,用uart通信,如果能正常通信,说明A的uart没有问题,两个U转T模块都有问题。如果B收集不到

2020-08-12 17:53:12 3311

原创 用ST官方例程测usart

简单记录自己的测试过程,没有什么卵用面对的问题: 1.芯片引脚不对应 2. STM32F40_41xxx\STM32F40_41xxx.sct(7): error: L6235E: More than one section matches selector - cannot.. 3. 大意是 systemint没有定义(昨天没来得及记录,隔了一天写了第三点)1.芯片引脚不对应stm32F4系列,芯片上使用的PB.10 PB.11复用为USART3的引脚,但是打开ST官方例程,发现在定义中选用

2020-08-12 17:00:03 297

原创 vscode编写.md文件

啊啊啊啊,大神太厉害了,连接放在这里备查。https://www.cnblogs.com/jpfss/p/10941921.html

2020-08-10 20:49:37 1772

原创 串口调试助手没有显示

用cubeMX生成工程之后,笔者写了下面两句话(向串口发送一个字符串):但是,打开调试工具怎么也接受不到数据,魔术棒里面的 芯片型号,调试(J-LINK方式)等已经调试好,波特率配置也没有问题。结果发现问题在于下图中的“reset and run”没有勾选。勾选上之后,串口调试助手有了反应。...

2020-08-06 17:29:16 8403 1

原创 modbus通讯协议

内容很经典哇!!!!https://www.cnblogs.com/txwtech/p/11104428.html

2020-08-04 14:43:58 221

原创 HAL使用user lable 自动生成宏定义

在cubeMX中,如果想配置io口的输入状态(上拉/浮空之类)使用user lable 的话,可以自动生成对应 lable的宏定义,使程序的可移植性更好,生成的宏定义如下图:user lable 的位置如下图所示:

2020-07-27 13:22:10 1543

原创 cubeMX学习笔记——生成工程文件

cubeMX学习笔记1参考:https://www.bilibili.com/video/BV1q4411d7RX?p=5生成工程文件据说点上之后,初始配置文件不会被挤在main.c里面。在新建的工程文件夹中选择MDK-ARM里面的工程文件,开始主函数的编写配置吧!编写的时候应用hal库函数!完结,撒花!...

2020-07-24 15:47:29 951

原创 GPIO工作原理 stm32学习笔记(五)

参考:【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)总结一下:输入主要分为:1、浮空输入2、模拟输入3、上拉输入4、下拉输入浮空、上拉、下拉都要经过经过施密特触发器进入输入数据寄存器。浮空输入下端口的电平信号可进入数据寄存器,但是端口悬空时,读入的信号是不确定的。上拉输入和下拉输入状态下,如果IO端口有高低电平,依照端口状态输入到数据寄存器;如果IO端口是悬空的,则IO端口的上拉或者下拉状态决定端口的电平高低。模拟输入下不经过施密特触发器,模拟信号直接进入片上外设。

2020-06-28 15:15:16 323

原创 STM32正点原子学习笔记(四)

MDK中的代码编辑技巧:一 选中整段代码,按Tab键,代码可以整体右移,按shift+Tab,代码可以整体左移。二 MDK有快速定位函数/变量的功能。具体操作方法为:光标放在想查看的函数/变量上,点击右键,GO TO Definition of “xx”;注意要在 opions for target 里面选择browse information这个选项,再编译,之后才能定位,否则无法定位成功。三 想要快速注释一段文本,可以选中,右击选择advanced—comment selection,如果想取消

2020-06-27 16:12:40 774

原创 正点原子STM32F103精英版学习笔记(二)

当使用某个 IO 口用作其他用处的时候,先看看开发板的原理图,该 IO 口是否有连接在开发板的某个外设上,如果有,该外设的这个信号是否会对你的使用造成干扰,先确定无干扰,再使用这个 IO。比如 PB8 就不怎么适合再用做其他输出,因为他接了蜂鸣器,如果你输出高电平就会听到蜂鸣器的叫声了。STN32固件库简介固件库是函数的集合,固件库函数的作用是:向下负责和寄存器直接打交道,向上提供用户函数调用的接口(API)。51可以直接对寄存器操作,但是STM32的寄存器太多了,所以意法公司将寄存器底层操作都封起来,

2020-06-26 09:29:10 3103

原创 stm32芯片解读+串口程序下载笔记-正点原子(一)

stm32芯片解读正点原子(一)芯片有哪些资源串口程序下载正点原子的视频笔记芯片有哪些资源打开选型手册(手册实时更新),找到之后大致知道芯片内部资源,根据项目的外设大致确定自己需要选择的芯片,设计时用p2p兼容替换。(比如zet6和zdt6引脚基本相同,只是存储不同)可用电池给板子供电,板子有三种低功耗模式。#芯片和引脚怎么对应芯片的数据手册,pin defination ,在default查找引脚的功能,I/O lower中标记FT 的都可以容忍5v。串口程序下载精英版STM32F1可以参考

2020-06-24 17:57:56 3059 1

空空如也

空空如也

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

TA关注的人

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