自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 嵌入式基本外设札记(一):ADC

一.ADC功能框图分析1.①电压输入范围ADC输入范围为VREF- ≤ VIN ≤ VREF+ ,由VREF-、VREF+、VDDA、VSSA四个外部引脚决定。在设计原理图时一般把VSSA、VREF-接地,VDDA、VREF+接3V3,得到ADC的输入电压范围为0~3.3V。如果想要让输入的电压范围变宽,可以测试负电压或更高的正电压,需要在外部添加一个电压调理电路,把需要转换的电压抬升或降压到0~3.3V就可以用ADC测量了。2.②输入通道STM32的ADC多达18个通道, 外部16个通道就是

2022-04-01 11:43:51 2238

原创 QSPI应用——W25Q128串行FLASH(先挖个坑 以后再写)

SPI协议其实是包括:Standard SPI、Dual SPI和Queued SPI三种协议接口,分别对应3-wire, 4-wire, 6-wire。(1)通常我们说的SPI就是Standard SPI,有4根信号线,分别为CLK、CS、MOSI和MISO。数据线工作在全双工。(2)Dual SPI,它只是针对SPI Flash而言,不是针对所有SPI外设。对于SPI Flash,全双工并不常用,因此扩展了mosi和miso的用法,让它们工作在半双工,用以加倍数据传输。也就是对于Dual SPI F

2022-04-01 10:09:58 845

原创 SPI应用——W25Q128串行FLASH

一.FLASH存储器介绍FLASH存储器又称闪存,它与EEPROM都是掉电后数据不丢失的存储器,但FLASH存储器容量普遍大于EEPROM,现在基本取代了它的地位。在存储控制上,最主要的区别是FLASH芯片只能一大片一大片地擦写,而EEPROM可以单个字节擦写。W25Q128是一种使用SPI通讯协议的NOR FLASH存储器,它的CS/CLK/DIO/DO引脚分别连接到了 STM32对应的SDI引脚NSS/SCK/MOSI/MISO上,其中STM32的NSS引脚是一个普通的GPIO,不是SPI的专用NS

2022-03-30 17:49:30 4414

原创 嵌入式通信协议札记(三):SPI

一.SPI协议简介SPI协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工通信总线,多应用在通信速率要求较高的场合。另外还支持双线单向以及单线模式。其中双线单向模式可以同时使用MOSI及MISO数据线向一个方向传输数据,可以加快一倍的传输速度。而单线模式则可以减少硬件接线,当然这样速率会受到影响。1.物理层SPI通信使用三条总线SCK、MOSI、MISO,还有片选线SS。SS(Slave Select):从设备选择信号线,常称为片选信号线,亦称N

2022-03-30 10:41:44 1883

原创 I2C应用——AHT10温湿度传感器

I2C读取AHT10温湿度数据需要结合传感器的数据手册来编写代码。//aht10.c#include "aht10.h"#include "delay.h"#include "iic.h"/** * @brief 向ATH10写入数据 * * @param cmd 命令 * @param data 要写入的数据 * @param len 写入数据大小 * * @return u8 0,正常,其他,错误代码 */u8 AHT10_Write_Data(u8

2022-03-29 16:49:50 5251

原创 DMA实现数据传输流程

1.相关概念(1)DMA直接寄存器访问可实现外设数据寄存器到存储器、存储器到外设数据寄存器、存储器到存储器之间的高效数据传输,无需CPU操作控制。(2)外设与存储器外设包括ADC、SPI、I2C、USART等等存储器包括片内SRAM、外部存储器、片内Flash等等(3)具体应用场合举例:ADC采集可以利用DMA将AD转换数据转移到目标存储区,适用于多通道采集、采样频率高、连续传输的ADC采集场合;将特定存储区的数据转移到外设数据寄存器,用于外设的对外数据传输,如存储器传输数据到串口数据寄存器

2022-03-23 12:23:02 12497 1

原创 串口通信数据收发处理流程

关于串口数据接收处理有多种方法,下面主要总结两种:1.引入接收状态标记USART_RX_STA//定义变量USART_RX_STA,接收状态//bit15, 接收完成标志//bit14, 接收到0x0d//bit13~0, 接收到的有效字节数目/** * @brief 串口1中断服务程序 * * @remark 下面代码直接把中断控制逻辑写在中断服务函数内部 * 说明:采用HAL库处理逻辑,效率不高。 * * @param void * * @return void

2022-03-22 17:20:14 4133 1

原创 控制系统分析与设计(五):方框图及其化简方法

1.方框图的基本概念及组成方框图又称框图、方块图、结构图,给出了信息传递的方向、输入输出的定量关系。方框图的组成(1)函数方块(2)信号线(3)分支点(引出点):引出的信号与原来的信号一样(4)比较点(综合点、相加点):输出信号等于输入信号的代数和方框图的建立从右往左推,U2(s)=1C2sI2(s)U_2(s)=\frac 1{C_2s}I_2(s)U2​(s)=C2​s1​I2​(s)I2(s)=1R2[U3(s)−U2(s)]I_2(s)=\frac 1{R_2}[U_3(s)

2020-10-29 20:29:15 5721 1

原创 控制系统分析与设计(四):典型环节的数学模型

具有相同动态特性或者说具有相同传递函数的所有不同物理结构、不同工作原理的元器件,被认为是同一环节,即环节是按动态特性对控制系统各部分进行分类的。应用环节的概念,则物理结构上千差万别的控制系统都是由为数不多的某些环节组成的。典型环节归纳如下:(1)比例环节(放大环节):输出以一定比例复现输入y(t)=Ku(t)y(t)=Ku(t)y(t)=Ku(t)G(s)=Y(s)U(s)=KG(s)=\frac{Y(s)}{U(s)}=KG(s)=U(s)Y(s)​=K(2)惯性环节τddty(t)+y(t)=

2020-10-28 19:59:11 5793

原创 控制系统分析与设计(三):非线性数学模型的线性化

文章目录1.非线性系统分类2.线性化条件1.非线性系统分类非本质非线性:光滑连续的部分可以局部线性化(如光滑连续曲线可以取某工作点的切线代替),是非线性数学模型线性化研究的对象本质非线性:工作曲线不光滑,甚至不连续,无法线性化 本质非线性具有以下特性:(1)饱和特性(理想运算放大器)(2)死区特性(3)继电器特性(4)回环特性2.线性化条件系统有一个固定的工作点系统正常工作时偏离工作点很小给定的区间内,变量的各阶导数存在(用切线去代替曲线是将输入输出表达式展开成泰勒级数,就要求变量

2020-10-28 11:31:02 5326

原创 控制系统分析与设计(二):比例积分控制器的传递函数

1. 理想运算放大器的特点:(1)无限大的输入阻抗:理想运算放大器输入端不允许电流输入,i+=i-=0(2)趋于零的输出阻抗:理想运算放大器的输出端是一个完美的电压源,无论流至放大器负载的电流如何变化,放大器的输出电压恒为定值,(3)电压放大倍数A趋于无穷大:u+=u-输出电压uo与同向端输入电压u+、反向端输入电压u-及电压放大倍数A的固有关系为uo=A(u+−u−)u_o=A(u_+-u_-)uo​=A(u+​−u−​)(u+−u−)=uoA(u_+-u_-)=\frac {u_o}{A}(

2020-10-27 14:49:46 13859 2

原创 控制系统分析与设计(一):控制系统分类及建模

文章目录一.控制系统分类二.控制系统的数学模型一.控制系统分类从不同的角度有多种分类方法随动系统(伺服系统):使输出复现输入 ,输入不确定(跟踪系统,如雷达);输入有规律变化(程序控制系统,如数控机床)自动调整系统(恒值系统):输入为定值,输出以一定精度保持在希望的数值上(如水箱水位)线性系统:可以用线性常微分方程(连续系统)或差分方程(离散系统)表示,如a0y(n)+a1y(n-1)+……+any=b0x(m)+b1x(m-1)+……+bmx;线性系统还分为线性定常系统和线性时变系统。

2020-10-25 20:17:57 3933 1

原创 嵌入式通信协议札记(二):I2C

一.I2C通信协议简介1.物理层I2C物理层有以下特点:I2C是支持多设备的总线,支持多个通讯主机、多个通讯从机I2C使用两条总线线路,SDA(双向串行数据线)、(SCL)串行时钟线每个连接到总线的设备都有一个独立的地址,主机利用地址进行不同设备的访问多个主机同时使用总线时,为防止数据冲突会通过仲裁的方式决定哪个设备占用总线具有三种传输模式:标准模式(100k/s)、快速模式(400k/s)、高速模式(3.4M/s)总线通过上拉电阻接到电源,当I2C设备空闲时输出高阻态,当所有设备都空闲

2020-08-05 11:33:58 318

原创 嵌入式通信协议札记(一):串口通信

一.串口通信的物理层与协议层物理层规定了通讯系统的机械、电子特性(相当于规定了用嘴巴还是肢体交流)协议层规定了通讯逻辑、数据打包解包标准(相当于规定了用中文还是英文交流)1.物理层串口通信的物理层有很多标准和变种,以RS232标准为例,规定了信号的用途、通讯接口、电平标准。电平标准串口通讯分为TTL标准和RS232标准因为控制器一般使用TTL电平标准,所以常常会使用MA3232芯片对TTL及RS232电平的信号进行互相转换。信号的用途串口线中的RTS、CTS、DSR、DTR及DCD

2020-08-03 20:59:01 842 1

原创 MATLAB控制系统仿真连载(一):程序结构

一.选择结构1. if-elseif-elseif 条件表达式1 语句段1elseif 条件表达式2 语句段2else 语句段3end注意:if-end标识了语句段的起止elseif与else if的区别:使用else if引入的是一个嵌套的if结构,并且必须与end匹配使用2. switch,case,otherwiseswitch 开关表达式 case 表达式1 语句段1 case 表达式2 语句段2 ...... otherwise 语句

2020-07-31 21:22:56 445

原创 Linux学习总结(四):Linux下使用GCC编译

1.GCC介绍(1)GCC工具链组件GCC编译工具链是指以GCC编译器为核心的一套工具,用于把源代码转化成可执行程序,主要包含以下三部分:gcc-core:即GCC编译器,用于完成预处理和编译过程,例如把C代码转换成汇编代码。Binutils :除GCC编译器外的一系列小工具包括了链接器ld,汇编器as、目标文件格式查看器readelf等。glibc:包含了主要的 C语言标准函数库,C语言中常常使用的打印函数printf、malloc函数就在glibc 库中。(2)GCC编译过程基本语法

2020-05-15 10:15:14 582

原创 Linux学习总结(三):Linux系统组件

文章目录1.UBoot2.Kernel(1)Linux内核(2)linux内核组成3.dtb(1)设备树简介(2)DTS的加载过程4.根文件系统完整的linux系统,通常包含了系统运行需要的4个基础组件:Uboot、Kernel、**.dtb以及根文件系统。1.UBootUBoot,全称 Universal Boot Loader,主要作用是用来启动操作系统内核。uBoot分为两个阶段,即boot + loader:boot阶段启动系统,初始化硬件设备,建立内存空间映射图,将系统的软硬件带到一个

2020-05-11 11:01:48 1988

原创 Linux学习总结(二):Linux修改配置文件及包管理工具介绍

1.使用配置文件修改软件源修改配置文件的步骤为:熟悉配置文件的格式->修改配置文件->更新配置(1)配置文件格式在Ubuntu下,软件源的配置是记录在文件 /etc/apt/sources.list 中,以清华大学镜像源为例,其文件格式为deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ Xenial main restricted universe multiversedeb-src https://mirrors.tuna.tsi

2020-05-10 10:13:39 670

原创 Linux学习总结(一):Linux命令行的使用

1.常用命令介绍命令说明cd切换到目标路径pwd输出当前路径ls列出当前目录下的内容,以不同的颜色对文件夹与文件进行了区分ls -l以列表的形式列出目录下的详细内容(1)cd命令“~”:当前用户的 home 目录“.”:当前目录“…” :当前目录的上一层目录“/” :根目录“-“:上一次cd切换前的目录2.命令格式介绍command [-options] [argument]command:命令名,如cd 、pwd、ls-opt

2020-05-09 20:16:30 324

原创 numpy与pandas学习笔记

#导入numpy库import numpy as np(1)创建矩阵:a=np.array([[1,2,3],[2,3,4],[4,5,6]],dtype=np.int64)函数说明np.ones((3,4))全是1的矩阵np.zeros()全是0的矩阵np.empty()全部元素都几乎接近于0的矩阵np.random.random((3...

2020-04-03 11:04:58 734

原创 python3.6使用matplotlib库遇到的问题

1.调用matplotlib时遇到的问题 UserWarning: This call to matplotlib.use() has no effect because the backend has alreadybeen chosen; matplotlib.use() must be called *before* pylab, matplotlib.pyplot,or matpl...

2020-03-30 13:53:51 1973 2

原创 Python、argparse和命令行参数

1.什么是命令行参数?命令行参数是在运行时赋予程序/脚本的标志。它们包含程序的其他信息,以便可以执行。并非所有程序都具有命令行参数,因为并非所有程序都需要它们。在我的博客文章的Python脚本中广泛使用了命令行参数,甚至可以说,这个博客上98%的文章都使用了命令行参数。2.为什么我们使用命令行参数?如前所述,命令行参数在运行时为程序提供了更多信息。这使我们可以在不更改代码的情况下即时为程...

2020-03-10 12:56:43 294

原创 Ubuntu16.04下使用pip与virtualenv构建Python独立的虚拟环境

文章目录1.安装pip与pip32.安装virtualenv与virtualenvwrapper3.虚拟环境的配置4.虚拟环境的使用5.总结1.安装pip与pip3针对Python2安装pip:sudo apt-get install pip针对Python3安装pip3:sudo apt-get install python3-pip查看pip与pip3的版本:pip -V ...

2020-03-06 19:55:33 419

原创 Ubuntu16.04将Python3.5升级到3.6遇到的问题

1.Python3.5升级到3.6时sudo apt-get update报错安装Python3.6步骤为:sudo add-apt-repository ppa:jonathonf/python-3.6sudo apt-get updatesudo apt-get install python3.6但是在sudo apt-get update时遇到403 Forbidden解决方法...

2020-02-29 21:18:54 771

空空如也

空空如也

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

TA关注的人

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