![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
文章平均质量分 55
小时候挺菜
这个作者很懒,什么都没留下…
展开
-
STM32是如何进入中断服务函数xxx_IRQHandler的
今天在看stm32的中断,一时间不理解stm32主函数是如何进入中断函数的,按C编程的理解,会有个特定的入口之类的,但是看demo过程中没有发现入口。以串口中断服务函数void USART1_IRQHandler(void) 为例,首先用到串口中断,需要先设定串口中断初始化以及串口初始化,另外void USART1_IRQHandler(void) 中断服务函数也应该写好。发现转载 2017-09-25 16:26:19 · 29034 阅读 · 0 评论 -
DMA
DMA主要功能是传输数据,但是不需要占用CPU,即在传输数据时,CPU可以做别的事,像多线程。数据传输从外设到存储器或者从存储器到存储器。DMA控制器包含了DMA1和DMA2,其中DMA1有7个通道,DMA2有5个通道,可以理解为传输数据的一种管道。要注意的是,DMA2只存在于大容量单片机中。 一、DMA框图解析 DMA控制器独立于内核,属于一个单独外设,结构结合下图来看 1.DMA请求 ...转载 2018-08-16 09:01:00 · 836 阅读 · 0 评论 -
STM32的Flash
STM32中存储区分为:随机存取存储器RAM和只读存储器ROM。 其中:RAM为常说的内存,比如手机的2G内存4G内存等,就是程序跑起来的时候所占用的存储空间,特点是掉电数据丢失。 ROM为常说的硬盘,比如手机的64G和128G等,可以简单的理解为硬盘的存储空间,特点是掉电数据不丢失,所以又叫“非易失性存储器件”。 ROM又包含:EEPROM和flash。 画个嵌入式产品存储器件的...转载 2018-08-15 18:21:00 · 3827 阅读 · 0 评论 -
中断API之enable_irq
1 void enable_irq(unsigned int irq) 用于使能一个irq。 2 void disable_irq(unsigned int irq)则用于禁止一个irq 3 4 其使用的例程如下: 5 static void cp_poll_controller(struct net_device *dev) 6 { 7 struct cp_priva...转载 2018-08-15 15:11:00 · 3614 阅读 · 0 评论 -
信号差分传输
所谓差分方式传输,就是发送端在两条信号线上传输的幅值是相等的,相位是相反的电信号,如下图所示: 而对于接收端,将会对接收的两条信号做 减法运算,这样就获得了幅值翻倍的信号,其抗干扰原理是:假如两条信号都收到同样的(同向、等幅度)的干扰信号,由于接收端是怼接收的两条线信号进行减法处理,因此干扰信号会被基本抵消。也就是说,一个差分放大器的输入有效信号幅度只需要几毫伏,但是它却能够对...原创 2018-08-13 13:58:00 · 4891 阅读 · 0 评论 -
PID三种参数的理解
来源:http://blog.gkong.com/liaochangchu_117560.ashxPID是比例、积分、微分的简称,PID控制的难点不是编程,而是控制器的参数整定。参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解。阅读本文不需要高深的数学知识。 1.比例控制 有经验的操作人员手动控制电加热炉的炉温,可以获得非常...转载 2018-07-26 18:26:00 · 3758 阅读 · 0 评论 -
PID的原理
来源:https://www.cnblogs.com/foxclever/p/8902029.html 在自动控制中,PID及其衍生出来的算法是应用最广的算法之一。各个做自动控制的厂家基本都有会实现这一经典算法。我们在做项目的过程中,也时常会遇到类似的需求,所以就想实现这一算法以适用于更多的应用场景。1、PID算法基本原理PID算法是控制行业最经典、最简单、而又最能体现反馈控制思想...原创 2018-07-26 18:07:00 · 726 阅读 · 0 评论 -
PID控制温度
总所周知,PID算法是个很经典的东西。而做自平衡小车,飞行器PID是一个必须翻过的坎。因此本节我们来好好讲解一下PID,根据我在学习中的体会,力求通俗易懂。并举出PID的形象例子来帮助理解PID。一、首先介绍一下PID名字的由来:P:Proportion(比例),就是输入偏差乘以一个常数。I :Integral(积分),就是对输入偏差进行积分运算。D:Derivative(微分),对输入...转载 2018-07-26 17:59:00 · 27050 阅读 · 0 评论 -
USB枚举过程
来源:https://www.cnblogs.com/cslunatic/p/5922773.htmlUSB枚举详细过程剖析 1.主机集线器检测到新设备 主机集线器监视着每个端口的信号电压,当有新设备接入时便可觉察。(集线器端口的两根信号线的每一根都有15kΩ的下拉电阻,而每一个设备在D+都有一个1.5kΩ的上拉电阻。当用USB线将PC和设备接通后,设备的上拉电阻使信号线的电位升高,因此被主...转载 2018-07-21 10:05:00 · 122 阅读 · 0 评论 -
U-boot
来源:https://blog.csdn.net/czg13548930186/article/details/76244596U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。U-Boot的作用是系统引导。U-Boot从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U...转载 2018-07-21 13:53:00 · 107 阅读 · 0 评论 -
USART
串口通信是一种设备间非常常用的串行通行方式,其简单便捷,大部分电子设备都支持。 一、物理层 常用RS-232标准,主要规定了信号的用途、通信接口以及信号的电平标准。 “DB9接口”之间通过串口信号线建立起连接,串口信号线使用”RS-232标准“传输数据信号,这些信号通过记过电平转换芯片转换成控制器能识别的TLL标准的电平信号,才能实现通信。 1.电平标准 可分为TTL标准以及RS-23...转载 2018-08-16 09:12:00 · 2012 阅读 · 0 评论 -
I2C
I2C 通讯协议(Inter-Integrated Circuit)引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。 在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32 标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分层的方式来理解,最基本的...转载 2018-08-16 09:39:00 · 281 阅读 · 0 评论 -
SPI
一、SPI 协议简介 SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求通讯速率较高的场合。 可与 I2C 章节对比阅读,体会两种通讯总线的差异以及 EEPROM 存储器与 FLASH 存储器的区别。 1、物理层 SPI通讯使用 ...转载 2018-08-16 10:20:00 · 2493 阅读 · 0 评论 -
上拉和下拉的作用
1.上拉电阻的作用功能:将不确定的信号,固定在高电平原理:电阻一端接VCC,一端接引脚(逻辑电平),如图,我的理解是在电路中电阻会分压,电流经过上拉电阻时会产生一个压降,上拉电阻接到的电源电压减去这个压降就是该IO可以被拉到的电平值,当然,这个上拉电平值必须能够达到逻辑1的下限。上拉电阻应用在引脚低电平有效的时候,这样把引脚的电平设定为低电平的时候,电流会输入引脚,如果没有输入信号原创 2017-09-20 17:10:30 · 16318 阅读 · 0 评论 -
STM32为什么必须先配置时钟
首先,任何外设都需要时钟,51单片机,stm32,430等等,因为寄存器是由D触发器组成的,往触发器里面写东西,前提条件是有时钟输入。51单片机不需要配置时钟,是因为一个时钟开了之后所有的功能都可以用了,而这个时钟是默认开启的,比如有一个水库,水库有很多个门,这些门默认是开启的,所以每个门都会出水,我们需要哪个门的水的时候可以直接用,但是也存在一个问题,其他没用到的门也在出水,即也在耗原创 2017-09-20 16:36:54 · 9680 阅读 · 9 评论 -
波特率
波特率一般用于描述串口通讯的速度、速率的指标,指串口每秒能传输多少位数据所谓波特率是比特每秒,就是位每秒的传输速度单位比如波特率为9600,即传输速度是9600bit/s,等于1200字节每秒的传输速度,那么19200bit/s=2400字节每秒,比9600bit/s快一倍。原创 2017-09-21 16:10:50 · 3661 阅读 · 0 评论 -
PID
偶然看到某电子分享的PID原理,很形象,分享给大家,希望对不太懂的人有所帮助。一、PID的故事小明接到这样一个任务:有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水。小明接到任务后就一直守在水缸旁边,时间长就觉得无聊,就跑到房里看小说了,每30分钟来检查一次水面高度。水漏得太快,每次小明来检查时,转载 2017-11-07 16:08:16 · 1365 阅读 · 0 评论 -
嵌入式文件格式说明
文件格式(1)BIN文件:binary文件,即二进制文件。Bin目录用来保存项目生成后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。 (2)HEX文件:hex的全称是Intel HEX,此类文件通常用于传输将被存于ROM或者EPR...转载 2018-09-13 17:05:00 · 983 阅读 · 0 评论 -
STM32中断名词
1、NVIC的优先级概念 占先式优先级 (pre-emption priority): 高占先式优先级的中断事件会打断当前的主程序/中断程序运行— —抢断式优先响应,俗称中断嵌套。 副优先级(subpriority): 在占先式优先级相同的情况下,高副优先级的中断优先被响应; 在占先式优先级相同的情况下,如果有低副优先级中断正在执行, 高副优先级的中断要等待已被响应的...原创 2018-08-16 20:05:00 · 319 阅读 · 0 评论 -
中断函数中不能使用printf的原因
vxworks 中断处理程序之所以不用printf,本质在于printf是将信息输出到标准输出设备(STDOUT)中, 整个标准输出设备是一个全局变量,由于有semTake操作,那么就会发生阻塞,vxworks属于硬实时操作系统,不能在规定的时间内完成操作即会死机或复位。所以vxworks不用printf的原因在于阻塞。 网上说printf 因为引用全局变量stdout,所以是不可重入的。这个稍微...转载 2018-08-16 11:06:00 · 4767 阅读 · 0 评论 -
STM时钟
一、在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。①HSI是高速内部时钟,RC振荡器,频率为8MHz。②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。③LSI是低速内部时钟,RC振荡器,频率为40kHz。④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。⑤PLL为锁相环倍频输出,其时钟输入源可...转载 2018-08-16 10:43:00 · 846 阅读 · 0 评论 -
TIME定时器
一、定时器分类 STM32F1 系列中,除了互联型的产品,共有 8 个定时器,分为基本定时器,通用定时器和高级定时器。基本定时器 TIM6 和 TIM7 是一个 16 位的只能向上计数的定时器,只能定时,没有外部 IO。通用定时器 TIM2/3/4/5 是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,每个定时器有四个外部 IO。高级定时器 TIM1/8是一个 1...转载 2018-08-16 10:28:00 · 1870 阅读 · 0 评论 -
信号去抖操作
来源:https://blog.csdn.net/renhaofan/article/details/78848547 总结一下,消抖两大类方法: 软件消抖:主要采取当按键按下,延时一会,越过信号不稳定的抖动时间,再次判断键盘是不是按下; If ( !key) { Delay(xxxms/us); if(!key) true key; else shake key; }...原创 2018-07-20 09:46:00 · 1790 阅读 · 0 评论