![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
顽强的磊头
逆风不怂,顺风不抗浪。
展开
-
GPIO模式
开漏输出只能输出低电平,不能输出高电原创 2020-10-16 20:32:29 · 285 阅读 · 0 评论 -
2020-09-13
就绪列表就是一个数据类型是列表的数组,如上图所示。数组的大小由configMAX_PRIORITIES(定义系统中断优先级数量)这个宏来决定。原创 2020-09-13 08:03:00 · 169 阅读 · 0 评论 -
STM32直流减速电机控制篇(三)编码器测速程序编写
编程思路任何一个程序的编写我们都应该先理清楚编程思路,通过上一篇讲解的编码器测速原理我们应该知道要想通过编码器得知电机转速我们第一步就应该是捕获A相和B相输出的脉冲因为电机速度的定义是单位时间内的转数,所以第二步在一个定时中断里读取一次捕获到的脉冲数(即电机的几何位移)并清零记录脉冲数的变量。经过这两个步骤我们就完成了电机的速度测量。代码编写利用32单片机(以STM32F103VET6为例,用Keil编程)捕获AB相的脉冲有两种方法第一种利用GPIO的外部中断来捕获跳变沿从而可以记录脉冲数。第二.原创 2020-08-16 19:11:20 · 31331 阅读 · 75 评论 -
STM32直流减速电机控制篇(二)编码器测速原理
编码器编码器是一种将角位移或者角速度转换成一连串电数字脉冲的旋转式传感器,我们可以通过编码器测量到底位移或者速度信息。编码器从输出数据类型上分可以分为增量式编码器和绝对式编码器。从编码器检测原理上来分,还可以分为光学式,磁式,感应式,电容式。常见的是光电编码器(光学式)和霍尔编码器(磁式)。 光电编码器的采集精度远高于霍尔编码器但价格更贵。编码器原理光电编码器是一种通过光电转换将输出轴上的机械几何位移转换成脉冲信号或者数字量的传感器。光电编码器是由光码盘和光电检测装置组成。光码盘是在一..原创 2020-08-02 12:20:36 · 21864 阅读 · 0 评论 -
STM32直流减速电机控制篇(一)PWM调速
直流电机原理下面是分析直流电机的物理模型图。其中,固定部分有磁铁,这里称作主磁极;固定部分还有电刷。转动部分有环形铁芯和绕在环形铁芯上的绕组。直流电机的转动原理我就不再赘述,比较简单易懂。直接来说控制方式就是把上图中的+和-分别接到电池的正极和负极,电机即可转动;如果是把上图中的+和-分别接到电池的负极和正极那么电机就会反方向转动。电机的转速可以理解为和外接的电压是正相关的。(实际由电枢电流决定这一点很关键,会在后面的讲解中体现出来。)总而言之,如果我们可以调节施加在电机上面的直流电压大小,即可..原创 2020-08-01 19:23:35 · 16223 阅读 · 1 评论 -
晶体管的结构、类型和三种组态
晶体管有两大类型 双极型晶体管(BJT)和场效应管(FET)。双极型晶体管又称为半导体三极管、晶体三极管,简称晶体管。它由两个PN结组合而成,有两种载流子参与导电是一种电流控制电流源器件。场效应管仅有一种载流子参与导电,是一种电压控制电流源器件。双极型晶体管有两种类型:NPN型和PNP型。晶体管符号中的箭头方向代表PN结的方向机发射极的电流方向。晶体管的三种组态。(1)共发射极接法,发射极作为公共电极,用CE表示。(2)共集电极接法,集电极作为公共电极,用CC表示。(3)共基极..原创 2020-07-10 18:28:15 · 9271 阅读 · 0 评论 -
STM32中用于中断屏蔽的特殊寄存器PRMASK,FAULTMASK,BASEPRI
PRIMASK 和FAULTMASK寄存器在很多应用中需要暂时屏蔽所有的中断进行一些对时序要求较高的任务,不然容易发生bug,例如I2C通讯。此时可以使用PRIMASK寄存器。PRIMASK可以屏蔽除NMI和HardFalut外的所有异常和中断。修改PRIMASK寄存器的值的方法有两种汇编使用CPS指令修改PRIMASKCPSIE I; //清除PRIMASK(使能中断)CPSID I; //设置PRIMASK(禁止中断)或者 通过MRS和MSR指令访问MOVS R0.原创 2020-07-08 16:29:04 · 8287 阅读 · 0 评论 -
STM32中断优先级的分配以及中断原则
STM32d的中断优先级由NVIC_IPRx寄存器来配置,IPR的宽度为8bit所以原则上每个中断可配置的优先级为0~255,数值越小优先级越高,但对于大部分的 Cortex-M3芯片都会精简设计,导致实际上支持的优先级数量更少。在STM32中只使用了IPR寄存器的高四位,第四位读回都为0。用于表达优先级的这四位又被分组为5组0~4,当配置中断优先级时要先选择你要将中断优先级分为哪一组,一个组又分成了抢占优先级和子优先级。具体如下图所以由上图可知当选择中断优先级为组0时,主优先级可选值只有0,..原创 2020-07-08 10:43:25 · 10525 阅读 · 11 评论 -
C语言中__FILE__ __LINE__ #line的用法
C语言中__FILE__ LINE #line的用法C语言中__FILE__用于指示本行语句所在源文件的文件名,例如该行语句位于main.c中,则__FILE__表示main.c。C语言中__LINE__用于指示本行语句位于源文件中的位置即行数。#line用于定义下一行语句的__LINE__的值。#line 200main(){int k;k=__LINE__;}则上述的k的值203。需要注意的是以上三者都是大小写敏感的。...原创 2020-07-07 12:03:38 · 1801 阅读 · 0 评论