自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BraveWangDev

有分享,才有进步;

  • 博客(14)
  • 资源 (29)
  • 收藏
  • 关注

原创 SDK降版本导致编译失败Error retrieving parent for item: No resource found that matches the given name

SDK降版本导致编译失败:Error retrieving parent for item: No resource found that matches the given name新装了Android的开发环境,新建工程后发现一个问题: 降低SDK版本后编译有问题,这里说一下Android项目降SDK版本的问题1,Android Studio新建一个项目,查看项目属性:2,将项目SDK降低到A

2016-09-27 16:15:44 1496

原创 通用定时器原理

一,STM32三种定时器区别 2个高级定时器 4个通用定时器 2个基本定时器二,定时器的计数模式向上计数模式: 计数器从0开始计数,当计数到自动装载值(TIMx_ARR)时产生向上溢出事件向下计数模式: 计数器从自动装载值(TIMx_ARR)开始向下计数,当计数到0时产生向下溢出事件中央对齐模式(向上/向下计数): 计数器从0开始计数,到自动装载值(TIMx_ARR

2016-09-26 14:59:50 7004

原创 窗口看门狗

一,窗口看门狗介绍独立看门狗的喂狗范围 0-X(X由预分频器和重装载值决定,最大值为0xFFF)独立看门狗相关介绍:传送门:独立看门狗相比于独立看门狗,窗口看门狗限定了喂狗时间段(由喂狗上限和喂狗下限值限定的喂狗范围) 所以形象的称作窗口看门狗二,为什么需要窗口看门狗独立看门狗:在0-重载值之间任意时间都可以喂狗 如果程序跑飞后又跑回正常 或者跑乱的程序正好执行了刷新看门狗

2016-09-16 15:05:19 5844 2

原创 独立看门狗

一,看门狗简介由于单片机会受到来自外界电磁场的干扰,造成程序跑飞使系统陷入死循环,造成不可预知的后果 于是有了用于检测单片机程序运行状态的模块或芯片,叫做”看门狗”(watchdog)看门狗作用:检测系统,当系统跑飞时复位系统,重新执行程序二,STM32看门狗STM32有两个看门狗:独立看门狗和窗口看门狗独立看门狗: 驱动:由LSI驱动,即使主时钟发生故障它仍有效 适用场景: 作为主程

2016-09-14 16:45:00 4853 7

原创 外部中断EXTI

前置技能:  按键输入-GPIO输入一,STM32中断介绍相比简单的51单片机,STM32的每个IO口都可以作为外部中断输入STM32中断控制器支持19个外部中断/事件请求: 线0-15:外部IO口输入中断 线16:连接到PVD输出 线17:连接到RTC闹钟事件 线18:连接到USB唤醒事件每个外部中断线可配置独立的触发方式,触发/屏蔽.专用状态位三种中断触发方式:

2016-09-12 16:50:15 9284 4

原创 串口通信实验

前置技能  串行通信基本原理   USART串口通信配置一,串口操作相关库函数:获取状态标志位函数-操作USART_SR寄存器// 获取状态标志位FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);// 清除状态标志位void USART_ClearFlag(USART_TypeDef* USA

2016-09-12 11:50:42 4252

原创 USART串口通信配置

一,串口相关寄存器USART_SR 状态寄存器USART_DR 数据寄存器USART_BRR 波特率寄存器USART_CR1 控制寄存器USART_SR-状态寄存器:        状态寄存器USART_SR,描述串口寄存器的一些状态:      如位5:读数据寄存器非空            通过读取这个位的值,判断是否收到了完整的数据   串口已经接收到了数据,并且已经USART相关寄存器USART测试

2016-09-09 17:06:49 22688 10

原创 串行通信基本原理

一,串行通信和并行通信  并行通信:数据各个位同时进行传输优点:速度快缺点:占用IO资源多串行通信:数据按位顺序进行传输优点:占用IO资源少缺点:速度较慢二,三种串行传输方式1,单工通信        只支持从发送方到接收方的单行传输,不支持反向传输    2,半双工通信        允许数据双向传输,单同一时刻只允许数据在一个方向传输   相当于即可用于接收也可用于发送

2016-09-08 10:02:55 6507 2

原创 NVIC中断优先级管理

一,STM32中断介绍CM3内核支持256个中断,16个内核中断和240个外部中断,具有256级可编程中断设置STM32只使用了CM3内核的一部分,84个中断:16个内核中断+68个可屏蔽中断(外部中断),具有16级可编程的中断优先级STM32F103系列只有60个可屏蔽中断(F107系列有68个)二,中断管理STM32有如此多的中断,那么是如何进行管理的中断优先级分组: SCB->AIRCR [1

2016-09-07 10:29:00 6302 2

原创 按键输入-GPIO输入

按键输入的硬件连接 读取IO输入的相关函数 捕捉按键状态的步骤 按键扫描实现思路 按键扫描程序代码

2016-09-06 13:17:56 10636 3

原创 蜂鸣器实验

一,蜂鸣器介绍 蜂鸣器分有源蜂鸣器和无源蜂鸣器,这里的源指的是震荡源  一般我们使用有源蜂鸣器,如图:           有两个引脚,较长的一端为正极,较短的一段为负极二,蜂鸣器硬件连接: 蜂鸣器负极连接在STM32的PB8引脚:     错误的连接方法:   IO口接蜂鸣器接地 错误的臆想:   IO口输出高电平,蜂鸣器正负极产生电压差,蜂鸣器发出声响错误分析:   STM

2016-09-05 15:47:26 4670

原创 LED跑马灯-位操作

什么是位操作位操作原理位与别名映射

2016-09-05 11:46:23 2679

原创 LED跑马灯-寄存器

LED跑马灯-寄存器实现流程: 使能GPIO时钟 配置寄存器:RCC_APB2ENR 初始化IO口工作模式 配置寄存器:GPIOx_CRH/CRL 操作IO口输出高低电平 配置寄存器GPIO_ODR或GPIO_BRRLED跑马灯-寄存器源码

2016-09-02 11:05:26 2850 1

原创 LED跑马灯-库函数

LED跑马灯-库函数实现流程: 1,使能GPIO时钟 使用IO口前先要使能相应的GPIO时钟 2,初始化IO口 GPIO_Init() 配置IO口的引脚,最大速度,输入/输出模式(使用推挽输出) 3,操作IO口输出高低电平 控制响应IO口输出高电平或低电平STM32文档手册分析LED跑马灯-库函数源码

2016-09-01 16:13:32 2632

【手写 Vue2.x 源码】第十篇 - 数组数据变化的观测情况

文章:【手写 Vue2.x 源码】第十篇 - 数组数据变化的观测情况 链接:https://brave.blog.csdn.net/article/details/128601406 内容:第十篇 - 数组数据变化的观测情况; 实现了数组数据变化被劫持后,已重写原型方法的具体逻辑; 数组各种数据变化时的观测情况分析;至此,数据劫持就全部完成了

2023-01-12

【手写 Vue2.x 源码】第九篇 - 对象数据变化的观测情况

文章:【手写 Vue2.x 源码】第九篇 - 对象数据变化的观测情况 链接:https://blog.csdn.net/ABAP_Brave/article/details/128588578 内容:本篇,主要介绍了数组数据变化的观测情况: 实现了对象老属性值变更为对象、数组时的深层观测处理; 结合实现原理,说明了对象新增属性不能被观测到的原因,以及如何实现对象新增属性的数据观测;

2023-01-11

【手写 Vue2.x 源码】第八篇 - 数组的深层劫持

文章:【手写 Vue2.x 源码】第八篇 - 数组的深层劫持 链接:https://brave.blog.csdn.net/article/details/128588563 内容:本篇,介绍了数组的深层观测实现,核心几个点如下: - 在之前对数组类型的处理中,仅对当前数组进行了部分原型方法重写操作,当通过变异方法操作数组时,相当于实现了数组的单层数据劫持能力; - 通过`observeArray`方法继续处理数组类型,对数组中每一项调用`observe`进行递归观测,实现了数组中嵌套结构的劫持:数组嵌套数组、数组嵌套对象; 注意:在 `observe`方法仅处理了对象类型,所以数组中的值类型是不会被观测的;

2023-01-11

【手写 Vue2.x 源码】第六篇 - 数据代理的实现

文章:【手写 Vue2.x 源码】第六篇 - 数据代理的实现 链接:https://blog.csdn.net/ABAP_Brave/article/details/128575652 内容:第六篇 - 数据代理的实现;将 data 暴露到 vm._data 实例属性上;利用 Object.defineProperty 将 vm.xxx 操作代理到 vm._data 上;首先,先做一次代理,将`data`挂载到 `vm._data`下,这样 vm 实例就能够在外部通过`vm._data.message`获取到`data.message`;之后,再做一次代理,将`vm`实例操作`vm.message`代理到`vm._data`上,这样,外部就可以直接通过`vm.message`获取到`data.message`;

2023-01-10

【手写 Vue2.x 源码】第五篇 - 数组的劫持

文章:【手写 Vue2.x 源码】第五篇 - 数组的劫持 链接:、https://blog.csdn.net/ABAP_Brave/article/details/128566890 内容:本篇主要介绍了 Vue 数据初始化流程中,数组类型的数据劫持,核心有以下几点: 出于对性能的考虑,Vue 没有对数组类型的数据使用 Object.defineProperty 进行递归劫持,而是通过对能够导致原数组变化的 7 个方法进行拦截和重写实现了数据劫持;

2023-01-09

【手写 Vue2.x 源码】第四篇 - 对象的深层劫持

文章:【手写 Vue2.x 源码】第四篇 - 对象的深层劫持 链接:https://blog.csdn.net/ABAP_Brave/article/details/128566839 内容:对象深层劫持的实现 1. 通过`data = isFunction(data) ? data.call(vm) : data;`处理后的 data 一定是对象类型; 2. 通过`data = observe(data)`处理后的 data 就实现了数据的响应式(目前只有劫持) 3. observe 方法最终会返回一个 Observer 类 4. Observer 类初始化时,通过 walk 遍历属性 5. 对每一个属性进行 defineReactive(Object.defineProperty)实现对象属性的单层数据劫持 6. 在 defineReactive 中调用 observe,如果当前属性的值为对象类型,继续对当前对象属性进行观测(即递归执行步骤 3~5),实现对象属性的深层数据劫持

2023-01-08

【手写 Vue2.x 源码】第三篇 - 对象的单层劫持

文章:【手写 Vue2.x 源码】第三篇 - 对象的单层劫持 链接:https://blog.csdn.net/ABAP_Brave/article/details/128555287 内容:第三篇 - 对象的单层劫持;本篇主要介绍了 Vue 数据初始化流程中,对象属性的单层劫持,核心处理: 1,data 为函数或对象两种类型的处理; 2,处理 data 函数中 this 的指向问题; 3,Observer 类,对数据进行观测;walk 方法,遍历 data 属性; 4,defineReactive 方法:利用 Object.defineProperty 实现数据劫持(单层劫持);

2023-01-08

【手写 Vue2.x 源码】第二篇 - Vue 的初始化流程

文章:【手写 Vue2.x 源码】第二篇 - Vue 的初始化流程 链接:https://blog.csdn.net/ABAP_Brave/article/details/128555243 内容:第二篇 - Vue 的初始化流程;本篇主要介绍了 Vue 数据的初始化流程,核心点: 1,加载 Vue 时,通过 initMixin 方法,在 Vue 原型上扩展 _init 方法; 2,执行 new Vue 时,调用 Vue 原型方法 _init,暴露 options 选项、执行状态初始化和挂载流程; 3,initState 状态初始化:对状态的多种来源进行统一的初始化处理;

2023-01-07

【手写 Vue2.x 源码】第一篇 - 使用 rollup 构建 Vue 环境

文章:【手写 Vue2.x 源码】第一篇 - 使用 rollup 构建 Vue 环境 链接:https://blog.csdn.net/ABAP_Brave/article/details/128538161 内容:第一篇-使用 rollup 构建 Vue 环境: 工程初始化、安装依赖、创建入口、配置 Rollup 、构建脚本、Vue 打包构建,vue 使用测试;

2023-01-07

vue-framework-admin-0.0.14.zip

一步一步实现中后台管理平台模板-基于Vue-cli3+Ant-Design-Vue,参考博文:https://blog.csdn.net/ABAP_Brave/article/details/102464029

2019-10-17

vue-framework-admin-0.0.13.zip

一步一步实现中后台管理平台模板-基于Vue-cli3+Ant-Design-Vue,参考博文:https://blog.csdn.net/ABAP_Brave/article/details/102338689

2019-10-08

vue-framework-admin-0.0.12.zip

一步一步实现中后台管理平台模板-基于Vue-cli3+Ant-Design-Vue,参考博文:https://blog.csdn.net/ABAP_Brave/article/details/102092006

2019-10-08

vue-framework-admin-0.0.11.zip

一步一步实现中后台管理平台模板-基于Vue-cli3+Ant-Design-Vue,参考博文:https://blog.csdn.net/ABAP_Brave/article/details/99623934

2019-08-23

vue-framework-admin-0.0.10.zip

一步一步实现中后台管理平台模板-基于Vue-cli3+Ant-Design-Vue,参考博文:https://blog.csdn.net/ABAP_Brave/article/details/99299824

2019-08-13

vue-framework-admin-0.0.9.zip

一步一步实现中后台管理平台模板-基于Vue-cli3+Ant-Design-Vue,参考博文:https://blog.csdn.net/ABAP_Brave/article/details/99286537

2019-08-12

vue-framework-admin-0.0.8.zip

一步一步实现中后台管理平台模板-基于Vue-cli3+Ant-Design-Vue,参考博文:https://blog.csdn.net/ABAP_Brave/article/details/99065313

2019-08-10

vue-framework-admin-0.0.7.zip

一步一步实现中后台管理平台模板-基于Vue-cli3+Ant-Design-Vue,参考博文:https://blog.csdn.net/ABAP_Brave/article/details/98942173

2019-08-09

vue-framework-admin-0.0.6.zip

一步一步实现中后台管理平台模板-基于Vue-cli3+Ant-Design-Vue,参考博文:https://blog.csdn.net/ABAP_Brave/article/details/98939127

2019-08-09

vue-framework-admin-0.0.5.zip

一步一步实现中后台管理平台模板-基于Vue-cli3+Ant-Design-Vue,参考博文:https://blog.csdn.net/ABAP_Brave/article/details/98884675

2019-08-08

vue-framework-admin-0.0.4.zip

一步一步实现中后台管理平台模板-基于Vue-cli3+Ant-Design-Vue,参考博文:https://blog.csdn.net/ABAP_Brave/article/details/98875481

2019-08-08

vue-framework-admin-0.0.3.zip

一步一步实现中后台管理平台模板-基于Vue-cli3+Ant-Design-Vue,参考博文:https://blog.csdn.net/ABAP_Brave/article/details/98871858

2019-08-08

vue-framework-admin-0.0.2.zip

一步一步实现中后台管理平台模板-基于Vue-cli3+Ant-Design-Vue,参考博文:https://blog.csdn.net/ABAP_Brave/article/details/98847046

2019-08-08

vue-framework-admin-0.0.1.zip

一步一步实现中后台管理平台模板-基于Vue-cli3+Ant-Design-Vue,参考博文:https://blog.csdn.net/ABAP_Brave/article/details/98618939

2019-08-06

webpack实例代码

博客中webpack实例的代码,已删除node_module文件夹,专栏地址:https://blog.csdn.net/column/details/25661.html

2018-08-02

ActiveMQ-Topic订阅发布模式Demo

ActiveMQ-Topic订阅发布模式:参考博文:http://blog.csdn.net/ABAP_Brave/article/details/71211334

2017-05-05

ActiveMQ-Queue点对点消息-Receive+Listener方式

ActiveMQ-Queues点对点消息-Receive+Listener方式:参考博文:http://blog.csdn.net/ABAP_Brave/article/details/53443725

2016-12-03

SpringBoot-SpringData-懒加载

SpringBoot-SpringData-懒加载,博文地址:http://blog.csdn.net/ABAP_Brave/article/details/53035313

2016-11-04

SpringBoot-SpringSecurity集成

SpringBoot-SpringSecurity集成,博文地址:http://blog.csdn.net/ABAP_Brave/article/details/53032694

2016-11-04

SpringBoot-thymeleaf模板集成

SpringBoot-thymeleaf模板集成,博文地址:http://blog.csdn.net/ABAP_Brave/article/details/53005794

2016-11-02

SpringBoot-SpringData-多数据源

SpringData多数据源实现,博文地址:http://blog.csdn.net/ABAP_Brave/article/details/52980885

2016-10-31

SpringBoot-SpringData-ManyToOne

SpringBoot-SpringData-ManyToOne,博文地址:http://blog.csdn.net/ABAP_Brave/article/details/52850062

2016-10-18

SpringBoot-SpringData-ManyToMany

SpringBoot-SpringData-ManyToMany,博文:http://blog.csdn.net/ABAP_Brave/article/details/52849827

2016-10-18

SpringBoot-SpringData-oneToOne

SpringBoot-SpringData-oneToOne,博文:http://blog.csdn.net/ABAP_Brave/article/details/52845986

2016-10-18

SpringBoot-SpringData-jpa集成

博文地址:http://blog.csdn.net/abap_brave/article/details/52804782

2016-10-13

SpringBoot-Junit

SpringBoot-Junit代码,包含各种测试Demo

2016-10-11

SpringBoot简单工程

SpringBoot简单项目,创建过程:http://blog.csdn.net/ABAP_Brave/article/details/52770743

2016-10-09

ST LINK驱动+升级

ST LINK驱动+升级

2016-08-19

CH340驱动及问题解决

CH340驱动

2016-08-19

空空如也

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

TA关注的人

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