自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LTspice仿真命令

交流扫描命令 .ac <oct, dec, lin> 参数1:扫描方式(oct 八倍频 dec 十倍频 lin 线性扫描)参数2: 扫描数参数3: 起始频率参数4: 终止频率交流小信号分析,电源设置为小信号示例 .ac dec 100 1 100K直流扫描命令 .dc 参数1:电源参数2:起始值参数3:终止值参数4:步长示例 .dc V1 5 ...

2019-03-07 15:53:11 16720 6

原创 Cortex-M4

线程模式+PSP+特权/非特权。处理模式+MSP+特权。

2023-05-17 11:39:39 383

原创 RTOS随笔之FreeRTOS启动与同步方法

RTOS

2023-02-16 16:31:36 851

原创 RTOS随笔之FreeRTOS

RTOS

2023-02-08 15:50:20 633

原创 基于STM32的UVC设备枚举解析

USB UVC

2022-08-05 15:50:44 1041

原创 SMT32H7系列DMA和DMAMUX的一点理解

DMAMUX,STM32H7xx

2022-06-30 10:43:28 2529

原创 STM32之FSMC驱动LCD深入理解

目前市场上的LCD种类繁多,驱动方式也多种多样。一般都是液晶面板,液晶控制器,触摸控制器三种器件进行组合的。现在的LCD驱动框图如下:带液晶驱动器的LCD一般都内置显存,采用8080/SPI接口。不带液晶驱动器的LCD一般都采用RGB接口。现在深入理解一下用FSMC/FMC模拟8080接口驱动:8080接口FSMC/FMC功能CSXNex片选信号WRXNWR写使能RDXNOE读使能D[15:0]D[15:0]数据信号D/CXA[

2022-05-11 17:11:38 5461

原创 应用运行环境解密

应用的运行环境取决于操作系统和硬件操作系统可以克服CPU以外的硬件差异在windows操作系统之前,每种机型(CPU相同,内存和输入输出设备不同)都需要专门的MS-DOS应用直接操作计算机的硬件。Windows的出现完善了操作系统。不同操作系统的API不同应用程序与操作系统进行交互的接口称为API。不同操作系统与外围设备(键盘,鼠标,显示器,打印机)进行交互的API接口不同。程序运行环境的创建虚拟机创建不同操作系统的运行环境Java虚拟机创建字节代码运行环境BIOS引导BIO

2021-05-15 14:18:21 212

原创 内存和磁盘的关系

内存和磁盘共同点都可以存储指令和数据不同点内存:电流存储容量小速度快磁盘:磁效应存储容量大速度慢内存和磁盘关系磁盘中存储的程序必须加载到内存中才能运行磁盘缓存:Why?(因为磁盘太慢)把磁盘中存储的数据存储在内存中,当该数据再次被读取时,不是从磁盘而是从内存中高速读取磁盘缓存是假想的磁盘,本质上是内存虚拟内存:Why?(因为内存太小)把磁盘的一部分作为假象的内存来使用,虚拟内存虽然是把磁盘作为内存的一部分来使用,但实际上正在运行的程序部分,在这个时间点上是

2021-05-15 11:13:18 468

原创 FreeRTOS基于任务通知的信号量 事件标志组 消息邮箱

FreeRTOS创建的任务都有一个任务控制块。任务控制块本质上是一个结构体变量,用于记录任务的相关的消息。结构体变量中有一个专门用于任务通知的32位变量ulNotifiedValue。ulNotifiedValue可取代计数信号,二值信号,事件标志组特点: 节省内存,提高效率,只有一个任务等待ulNotifiedValue数值进行加一或减一就是计数信号量ulNotifiedValue数值取值0或1就是二值信号量ulNotifiedValue数值按位设置bit0-bit31就是事件标志组任

2021-04-28 11:26:50 445

原创 VirtualBox实现文件与主机复制粘贴

VirtualBox要实现与主机之间进行文件拷贝,需要安装增强功能。安装增强功能有两种方式:1.官网下载增强功能包,手动安装2.VirtualBox联网安装一. 手动安装增强包下载增强包,官网下载点击管理,选择全局设定,然后点击扩展点击虚拟机,选择设置,高级,双向选择存储,控制器属性勾选使用主机输入输出缓存启动虚拟机,双击VirtualBox Guest Addition进行增强包安装安装之后重启电脑即可二. 联网安装增强包虚拟机联网安装,直接点击安装增强功能,自动下载安装

2021-04-27 20:13:31 9002

原创 VirtualBox安装Win10系统

VirtualBox是一款免费的开源虚拟机,它简单易用,支持Windows、Linux和Mac系统等。最重要的是安装简单,操作方便。。。。。。装机准备Windows10镜像文件VirtualBox软件 VirtualBox连接.一. 创建虚拟机新建虚拟机名称是要安装的操作系统,选择文件夹存放虚拟机,类型和版本自选然后下一步内存分配自定义内存大小然后下一步创建虚拟硬盘点击创建虚拟硬盘选择硬盘类型选择VDI然后下一步选择硬盘分配方式选择动态分配然后下一步分配

2021-04-27 16:29:10 9852 2

原创 FreeRTOS之软件定时器

软件定时器的时钟节拍来自于系统时钟,不需要硬件定时器外设,软件定时器通过回调函数实现功能。软件定时器的多数API函数是通过消息队列给定时器任务发送数据,在定时器任务里通过回调函数处理数据。不要在定时器回调函数中调用引起任务阻塞或挂起的函数软件定时器API功能TimerHandle_t xTimerCreate( char * const pcTimerName, TickType_t xTimerPeriod, UBaseType_t uxAutoReload, void * co

2021-04-26 13:25:34 172

原创 FreeRTOS之事件标志组

事件标志组用于任务间通信或同步事件标志组和全局变量全局变量一般用在无RTOS的程序中,因此程序对全局变量的访问是顺序的,全局变量对于每一个访问它的程序来说都是最新值事件标志组一般用在多任务系统中,多任务使用事件标志组可以防止访问冲突。因为多任务相当于并行执行,访问全局变量可能会出现同时访问一个值的情况,会出现访问冲突或变量不是最新值事件标志组在多任务中可以进行超时等待事件标志组本质上是一个16位或32位的软件状态寄存器。16位的话使用低8位,32位的话使用低24位,每位用0或1表示事件标志。

2021-04-26 10:32:02 276 1

原创 FreeRTOS的重要知识点

系统栈和任务栈系统栈系统栈用于中断函数和中断嵌套系统栈大小在启动文件.S文件中分配系统栈指针为MSP指针任务栈任务栈用于局部变量,函数形参,现场保护及返回地址等任务栈大小在FreeRTOSConfig.h文件定义的heap中分配任务栈指针为PSP指针临界段 调度锁 任务锁 中断锁临界段临界段作用是临界段的代码不允许任何中断打断,即临界段必须一次性执行完成执行临界段关闭了所有中断,因此执行任务切换的PendSV中断和滴答定时器中断也关闭了,任务切换禁止临界段API功能

2021-04-25 15:44:28 522

转载 EmWin自定义消息发送

例如我要定义一个WM_IC的消息1.在emwin窗口文件的头文件.h文件中声明 #define WM_IC (WM_USER + 0x00)//自定义消息2.然后在 switch (pMsg->MsgId) {…}中定义一个case WM_IC:…break;然后就是想在地方产生此消息用WM_SendMessageNoPara(WM_GetClientWindow(hDlg),WM_IC)即可其中WM_GetClientWindow为返回客户端窗口句柄。具体在《emWin5中文手册》窗口管理器

2020-12-18 14:40:17 1248

原创 GD32 新建工程模板

本文以GD32F450MCU为核心,新建工程模板准备资料:GD32F4xx Firmware Library V2.1.0 GD32F4Pack包http://www.gd32mcu.com/cn/download/7?kw=GD32F4.https://pan.baidu.com/s/1UALqIk6E6zktY_mg1oUo0g 链接:https://pan.baidu.com/s/1UALqIk6E6zktY_mg1oUo0g提取码:6666先新建文件夹名为TEST,在该文件夹下新建

2020-12-02 19:29:13 3962 1

原创 初识GD32

什么是GD32?GD32是由北京兆易创新开发的国产32位MCU,基于Arm Cortex-M3/M23/M4内核的32位通用微控制器。目前已经推出GD32F1xx,GD32F2xx,GD32F3xx,GD32F4xx系列,与STM32相比,CPU主频更高,内存更多,外设更丰富。GD32与STM32区别GD32和STM32都是基于ARM Cortex-M3/M4内核开发的通用微控制器。主要从CPU,内存,外设,固件库,车成本分析。以STM32F103和GD32F103为例

2020-12-02 15:12:58 10706 1

原创 C语言之存储类型及内存管理

一. 存储类一个变量在程序中的存在一般可以从时间和空间两个角度去描述。时间就是变量在内存中存活的时间即存储时期。空间可以从变量的作用域和链接属性去描述。1.作用域C变量的作用域分为代码块作用域,函数原型作用域,文件作用域3种。代码块作用域:从该变量被定义的地方到包含该定义的代码块的末尾该变量均可见。比如函数,复合语句函数原型作用域:从变量定义处一直到原型声明的末尾。在该作用域中,编译器只关心参数类型,但是变长数组除外。void test(int n,int m,char A[n][m])

2020-11-28 18:02:59 331

转载 十大滤波算法

一、限幅滤波</h2>1)方法   根据经验判断两次采样允许的最大偏差值A   每次采新值时判断:若本次值与上次值之差<=A,则本次有效;若本次值与上次值之差>A,本次无效,用上次值代替本次。2)优缺点   克服脉冲干扰,无法抑制周期性干扰,平滑度差。3)代码 /* A值根据实际调,Value有效值,new_Value当前采样值,程序返回有效的实际值 */ #define A 10 char Value; char f...

2020-11-28 16:57:44 10332 1

转载 C/C++内存分配

一、一个C/C++编译的程序占用内存分为以下几个部分: 栈区(stack):由编译器自动分配与释放,存放为运行时函数分配的局部变量、函数参数、返回数据、返回地址等。其操作类似于数据结构中的栈。堆区(heap):一般由程序员自动分配,如果程序员没有释放,程序结束时可能有OS回收。其分配类似于链表。全局区(静态区static):存放全局变量、静态数据、常量。程序结束后由系统释放。全局区分为已初始...

2020-11-26 15:48:40 208

原创 基于Visual Studio搭建Little VGL环境

基于Visual Studio搭建Little VGL环境https://pan.baidu.com/s/1w8xqyHE-yo_AjN8LuANqbQ 提取码:6666测试可用,拿走不谢

2020-10-23 17:33:35 624

原创 FreeRTOS应用之信号量

信号量何为信号量信号量分类二值信号量计数信号量互斥信号量递归信号量二值信号量原理计数信号量原理互斥信号量信号量控制块信号量相关函数何为信号量信号量是实现任务间通信的机制,用于任务同步或资源互斥访问,常见于出现资源竞争型的任务。信号量分类二值信号量二值信号量用于同步或临界资源访问,没有优先级继承机制,偏向于同步功能。二值信号量可以看作只有一个消息的队列,这个队列只能为有值和无值两种情况。当二值信号量用于同步功能时,信号量创建后为空,任务1获取信号量进入阻塞,任务2触发条件释放信号量,任务1获得信号

2020-08-15 16:58:00 664

原创 FreeRTOS应用之消息队列

消息队列何为消息队列队列收发机制队列控制块何为消息队列消息队列是用于任务与任务,中断与任务之间通信的数据结构,具有不定长,异步的特点。消息队列支持先进先出方式,先进入消息队列的消息先传给任务,同时也支持后进先出方式,即往队首发送消息。一个消息队列 = 控制块 + 单个消息空间大小 * 队列长度。消息队列一旦创建无法更改消息空间大小及队列长度,每个消息空间可以存放不大于空间容量的任意数据类型。队列收发机制任务或中断向消息队列发送消息时,队列未满或者允许覆盖,消息将拷贝到队列队尾,否

2020-08-07 16:54:39 1043

原创 FreeRTOS应用之任务管理

@TOC任务任务

2020-08-04 16:45:02 464

转载 Markdown 语法手册

0. 目录0. 目录1. 斜体和粗体2. 分级标题3. 超链接3.1. 行内式3.2. 参考式3.3. 自动链接4. 锚点5. 列表5.1. 无序列表5.2. 有序列表5.3. 定义型列表5.3. 列表缩进5.4. 包含段落的列表5.5. 包含引用的列表5.6. 包含代码区块的引用5.7. 一个特殊情况6. 引用6.1. 引用的多层嵌套6.2. ...

2020-08-04 15:14:04 178

原创 STM32之FSMC驱动LCD难点理解

STM32之FSMC驱动LCD难点理解根据外设存储器的位宽分为8Bit和16Bit驱动STM32内部存储单位为一个字节,也就是一个地址存储一个字节大小的数据,当外部存储器的位宽为8位时,写入一个数据需要一个字节即地址加1,当外部存储器的位宽为16位时,写入一个数据需要两个字节即地址加2,如下图所示:外设存储器位宽8位:写入0x11 和 0x22地址内存0x6000 00000x110x6000 00010x22外设存储器位宽16位:写入0x1122 和 0x

2020-05-18 16:34:57 1860

原创 STM32之串口通讯

串口通讯简介串口通讯是设备之间常见的一种串行通讯方式。一般包含物理层和协议层,物理层是电气连接及逻辑电平标准,为了提高信号的抗干扰性能选择RS232电平标准,硬件设计时连接TX,RX,GND三条信号线就可进行通讯;协议层包含数据的收发设置,数据帧的设置等。支持同步单向通信,半双工单线通信,局域互联网协议,智能卡协议,红外等。协议层开发波特率 通信双方约定的通信速率。启始/停止信...

2020-03-25 08:11:40 204

原创 STM8S专题之GPIO输入输出

文章目录简介原理寄存器流程示例注意简介单片机的GPIO引脚由于内部电路不同具有不同的模式,一般分为输入模式和输出模式。输入模式有悬浮输入、上拉输入。输出模式有推挽输出、开漏输出。如果GPIO引脚作为模拟信号输入设置为悬浮输入,作为I2C数据通信设置为开漏输出模式,作为方波输出设置为推挽输出模式。原理悬浮输入悬浮输入模式下,电路的引脚电平状态不确定,它跟随外部信号的变化而变化,适用于模...

2020-03-22 16:53:53 1592

原创 STM8S专题之ADC数据转换

文章目录简介原理系统框架转换模式转换速度转换精度寄存器流程示例注意简介数字信号是一种离散的信号,模拟信号是一种连续的信号,如果数字电路需要处理模拟信号,则需要一种信号转换系统,相反,模拟电路要处理数字信号也需要进行信号转换。A/D与D/A 转换器就是两种信号进行处理的桥梁。常见的A/D转换器有并联比较型、逐次逼近型、V-F型、双积分型等。常见的D/A转换器有权电阻网络型、倒T型电阻网络型、...

2020-03-21 11:45:59 3237

转载 STM32输入输出模式详解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

2019-11-15 15:19:36 532

转载 AD铺铜技巧总结

原文链接:https://blog.csdn...

2019-11-11 14:38:48 35407

原创 MATLAB笔记之数据结构

MATLAB笔记之数据结构字符串在MATLAB中字符采用16位Unicode编码,每个字符占用2字节的存储空间。长度相同的字符串组成的数组叫做字符数组;长度不同的字符串组成的数组叫字符串单元数组。数据类型创建方式一维字符数组A=‘abc’二维字符数组A=[‘abc’;‘abc’]或者A=char(‘abc’,‘abc’)字符串等长字符串单元数组A={...

2019-09-25 16:59:58 395

转载 STM32应用之485通信

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

2019-09-05 13:11:47 5059 1

原创 LTspice创建模型

由于刚开始接触电路,对于电路调试并不是很清楚,只是通过查找资料,帮助文档学习,其中深奥的东西目前并不是很理解,只是相互学习。LPspice创建模型的方法:通过导入PSPICE或者SPICE模型常见的分立元器件创建创建常见的分立元器件,比如电阻,电容,电感,二极管,三极管,晶闸管等以npn管2N2102为例第一步找到要创建的仿真模型,一般去官网下载或者到其他仿真软件的库文件里找模型下...

2019-03-07 18:25:12 15765 4

空空如也

空空如也

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

TA关注的人

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