文档库 最新最全的文档下载
当前位置:文档库 › stm32f103系统时基定时器

stm32f103系统时基定时器

stm32f103系统时基定时器
stm32f103系统时基定时器

我不得不说意法半导体确实有点风骚!甚至有点变态。我对ST文档STM32F10 XXX参考手册的编辑水平真是不敢恭维。手册中好多说明都是含糊不清,甚至将好多对初学者来说很重要的地方都一笔带过,让人着实摸不着头脑。比如前面我说过的关于NVIC嵌套向量中断控制器的介绍,这部分我认为是非常重要的,但当你看完他这部分介绍,你根本不会设置中断服务程序,他有哪些寄存器都不知道,更别说去设置了,NVIC的详细介绍是在Cotex-M3中有详细的介绍,不多说。今天我们说的是systick定时器。

systick定时器和我上面说的情况一样,在手册中根本没有介绍。我费了九牛二虎之力才在一个犄角格拉里找到systick定时器的英文版的说明。在Cotex-M3有介绍,为什么要找STM32的介绍,是因为功能设置上还有点区别。首先看一下sy stick定时器的作用,下面是Cotex-M3里的一段话:

SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心跳”的节律。

Cortex‐M3处理器内部包含了一个简单的定时器。因为所有的CM3芯片都带有这个定时器,软件在不同CM3器件间的移植工作得以化简。该定时器的时钟源可以是内部时钟(FCLK,CM3上的自由运行时钟),或者是外部时钟(CM3处理器上的STCLK信号)。不过,STCLK的具体来源则由芯片设计者决定,因此不同产品之间的时钟频率可能会大不相同,你需要检视芯片的器件手册来决定选择什么作为时钟源。(知道我为什么找ST关于systick的说明了吧)。

下面介绍STM32中的systick,Systick部分内容属于NVIC控制部分,一共有4个寄存器,名称和地址分别是:

STK_CSR, 0xE000E010 -- 控制寄存器

STK_LOAD, 0xE000E014 -- 重载寄存器

STK_VAL, 0xE000E018 -- 当前值寄存器

STK_CALRB, 0xE000E01C -- 校准值寄存器

首先看STK_CSR控制寄存器:寄存器内有4个位t具有意义

第0位:ENABLE,Systick使能位(0:关闭Systick功能;1:开启Systick功能)第1位:TICKINT,Systick中断使能位(0:关闭Systick中断;1:开启Systic k中断)

第2位:CLKSOURCE,Systick时钟源选择(0:使用HCLK/8 作为Systick时钟;1:使用HCLK作为Systick时钟)

第3位:COUNTFLAG,Systick计数比较标志,如果在上次读取本寄存器后,S ysTick已经数到了0,则该位为1。如果读取该位,该位将自动清零

STK_LOAD 重载寄存器:

Systick是一个递减的定时器,当定时器递减至0时,重载寄存器中的值就会被重装载,继续开始递减。STK_LOAD 重载寄存器是个24位的寄存器最大计数0 xFFFFFF。

STK_VAL当前值寄存器:

也是个24位的寄存器,读取时返回当前倒计数的值,写它则使之清零,同时还会清除在SysTick控制及状态寄存器中的COUNTFLAG 标志。

STK_CALRB 校准值寄存器:

这个寄存器好像目前的水平我还用不到,大体意思明白点,把英文说明放这吧:

位31 NOREF :1=没有外部参考时钟(STCLK 不可用)0=外部参考时钟可用位30 SKEW:1=校准值不是准确的1ms 0=校准值是准确的1ms

位[23:0] :Calibration value

Indicates the calibration value when the SysTick counter runs on HCLK max/8 as external clock. The value is product dependent, please refer to the Product Reference Manual, SysTick Calibration Value section. When HCLK is progra mmed at the maximum frequency, the SysTick period is 1ms. If calibration inf ormation is not known, calculate the calibration value required from the freque ncy of the processor clock or external clock.

SysTick定时器除了能服务于操作系统之外,还能用于其它目的:如作为一个闹铃,用于测量时间等。要注意的是,当处理器在调试期间被喊停(halt)时,则SysTick定时器亦将暂停运作。

下面我们就应用SysTick定时器来裸奔,把它作为一个定时器来用,还是老一套,在寄存器头文件中添加定义寄存器:

//*****************************************************************

//* SystemTick-Register

//*******************************************************************

#define SYSTICK_TENMS (*((volatile unsigned long *)0xE000E01C))

#define SYSTICK_CURRENT (*((volatile unsigned long *)0xE000E018))

#define SYSTICK_RELOAD (*((volatile unsigned long *)0xE000E014))

#define SYSTICK_CSR (*((volatile unsigned long *)0xE000E010))

配置systick寄存器:

voidSysTick_Configuration(void)

{

SYSTICK_CURRENT=0; //当前值寄存器

SYSTICK_RELOAD=20000; //重装载寄存器,系统时钟20M中断一次1mS SYSTICK_CSR|=0x06;// HCLK作为Systick时钟,Systick中断使能位

}

中断处理:

void SysTick_Handler(void) //中断函数

{

extern unsigned long TimingDelay; // 延时时间,注意定义为全局变量SYSTICK_CURRENT=0;

if (TimingDelay != 0x00)

TimingDelay--;

}

利用systick的延时函数:

unsigned long TimingDelay; // 延时时间,注意定义为全局变量

void Delay(unsigned long nTime) //延时函数

{

SYSTICK_CSR|=0x07; // 使能SysTick计数器

TimingDelay = nTime; // 读取延时时间

while(TimingDelay != 0); // 判断延时是否结束

SYSTICK_CSR|=0x06;// 关闭SysTick计数器

}

int main()

{

SystemInit0(); //系统(时钟)初始化

stm32_GpioSetup (); //GPIO初始化

SysTick_Configuration(); //配置systick定时器

while(1)

{

GPIO_PORTB_ODR|=(1<<5);

Delay(1000); //1S

GPIO_PORTB_ODR&=~(1<<5);

Delay(1000); //1S

}

}

完成!Delay(1000);实现了1S的精确延时,利用Delay(unsigned long nTime);配合systick定时器可以实现任意时间的精确延时,当然通过定时器TIMx也是可以这样做的,我只是用它来说明systick定时器的用法

05_STM32F4通用定时器详细讲解精编版

STM32F4系列共有14个定时器,功能很强大。14个定时器分别为: 2个高级定时器:Timer1和Timer8 10个通用定时器:Timer2~timer5 和 timer9~timer14 2个基本定时器: timer6和timer7 本篇欲以通用定时器timer3为例,详细介绍定时器的各个方面,并对其PWM 功能做彻底的探讨。 Timer3是一个16位的定时器,有四个独立通道,分别对应着PA6 PA7 PB0 PB1 主要功能是:1输入捕获——测量脉冲长度。 2 输出波形——PWM 输出和单脉冲输出。 Timer3有4个时钟源: 1:内部时钟(CK_INT ),来自RCC 的TIMxCLK 2:外部时钟模式1:外部输入TI1FP1与TI2FP2 3:外部时钟模式2:外部触发输入TIMx_ETR ,仅适用于TIM2、TIM3、TIM4,TIM3,对应 着PD2引脚 4:内部触发输入:一个定时器触发另一个定时器。 时钟源可以通过TIMx_SMCR 相关位进行设置。这里我们使用内部时钟。 定时器挂在高速外设时钟APB1或低速外设时钟APB2上,时钟不超过内部高速时钟HCLK ,故当APBx_Prescaler 不为1时,定时器时钟为其2倍,当为1时,为了不超过HCLK ,定时器时钟等于HCLK 。 例如:我们一般配置系统时钟SYSCLK 为168MHz ,内部高速时钟 AHB=168Mhz ,APB1欲分频为4,(因为APB1最高时钟为42Mhz ),那么挂在APB1总线上的timer3时钟为84Mhz 。 《STM32F4xx 中文参考手册》的424~443页列出与通用定时器相关的寄存器一共20个, 以下列出与Timer3相关的寄存器及重要寄存器的简单介绍。 1 TIM3 控制寄存器 1 (TIM3_CR1) SYSCLK(最高 AHB_Prescaler APBx_Prescaler

温控器调整方法

E5AZ-R3-38数字式温度控制器调整说明 一、接线方式: 接线柱1、2――-AC220V电源 接线柱4、6―――低温输出101、103 接线柱7、8―――高温输出101、102 接线柱9、10、11―――PT100温度传感线A\B\B 二、界面图形 三、设定方法: 1.温度设置(此部分用于常规调整) 1)在运行菜单下,设置高温值为26.0。 2)按一次菜单键,再按一次模式键,设置高温回差1.5。 3)按一次菜单键返回运行菜单。 4)按两次模式键,设置低温值为25.5。 5)按一次模式键,返回运行菜单。 2.系统设置(以下调整为系统模式设置,请不要改动) 1)菜单键+模式键同时按下3秒以上,进入保护菜单,按模式键切换 选项,依次按如下设置: 2)同时按菜单+模式1秒以上,返回运行菜单。

3.第二步:模式设置 1)按菜单3秒以上,进入初始菜单,按模式键切换选项,依次按如下 设置: ?设置温度传感器类型为1。 ?设置温度单位为℃。 ?设置最高温度限制值: ?设置最低温度限制值: ?设置ON/OFF方式为ONOF。 ?设置控制方式为标准方式。 ?设置动作方向为正方向。 ?设置报警1种类为0。 ?设置报警2种类为8。 ?设置报警3种类为0。 ?设置密码为-169,等待3秒,自动进入高级模式: ?设置 ?设置低温回差为1.5。

设置 2)按菜单键3秒以上,返回运行菜单。 4.第三步:状态设置 1)按一次模式键,进入状态设置,按上调或下调键设置为RUN。则温 控器开始工作。 2)如设置为STOP,则温控器STOP灯亮,停止工作。 TMC229-HT-DAA038数字式温度控制器调整说明 一、接线方式: 与E5AX相同,内芯可互换。 二、界面图形 三、设定方法: 1.温度设置(此部分用于常规调整) 1)在运行菜单下,设置低温值SV为24.0 2)按2次SET键,设置高温值SV2为26.0(一般要求SV2=SV1+2) 2.系统设置(以下调整为系统模式设置,请不要改动) 1)解锁:同时按SET和︽5秒,出现画面LOC-3,将3改为0后,先 按下SET不松开,再按︽后立即全部松开,解锁完毕。 2)调整:同时按下SET和︾键5秒,出现设置界面,按SET切换设置

STM32通用定时器_15-1-6

通用定时器的相关配置 1、预装入(Preload) 预装入实际上是设置TIMx_ARR寄存器有没有缓冲,根据“The auto-reload register is preloaded。Writing to or reading from the auto-reload register accesses the preload register。”可知: 1)如果预装入允许,则对自动重装寄存器的读写是对预装入寄存器的存取,自动重装寄存器的值在更新事件后更新; 2)如果预装入不允许,则对自动重装寄存器的读写是直接修改其本身,自动重装寄存器的值立刻更新; 3)设置方式:TIMx_CR1 →ARPE(1) 2、更新事件(UEV) 1)产生条件:①定时器溢出 ②TIMx_CR1→ UDIS = 0 ③或者:软件产生,TIMx_EGR→ UG = 1 2)更新事件产生后,所有寄存器都被“清零”,注意预分频器计数 器也被清零(但是预分频系数不变)。若在中心对称模式下或DIR=0(向上计数)则计数器被清零;若DIR=1(向下计数)则计数器取TIMx_ARR的值。 3)注意URS(复位为0)位的选择,如下:

如果是软件产生更新,则URS→1,这样就不会产生更新请求 和DMA请求。 4)更新标志位(UIF)根据URS的选择置位。 5)可以通过软件来失能更新事件: 3、计数器(Counter) 计数器由预分频器的输出时钟(CK_CNT)驱动,TIMx_CR1→CEN = 1 使能,注意:真正的计数使能信号(CNT_EN)在 CEN 置位后一个周期开始有效。 4、预分频器(Prescaler) 预分频器用来对时钟进行分频,分频值由TIMx_PSC决定,计数器的时钟频率CK_CNT= fCK_PSC / (PSC[15:0] + 1)。 根据“It can be changed on the fly as this control register

stm32定时器的区别

STM32高级定时器、通用定时器(TIMx) 、基本定时器(TIM6和TIM7) 区别? 高级定时器TIM1和TIM8、通用定时器(TIM2,TIM3,TIM4,TIM5) 、基本定时器(TIM6和TIM7) 区别? TIM1和TIM8主要特性TIM1和TIM8定时器的功能包括: ● 16位向上、向下、向上/下自动装载计数器 ● 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值 ● 多达4个独立通道:─ 输入捕获─ 输出比较─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出 ● 死区时间可编程的互补输出 ● 使用外部信号控制定时器和定时器互联的同步电路 ● 允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器 ● 刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态 ● 如下事件发生时产生中断/DMA:─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) ─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ─ 输入捕获─ 输出比较─ 刹车信号输入 ● 支持针对定位的增量(正交)编码器和霍尔传感器电路 ● 触发输入作为外部时钟或者按周期的电流管理 TIMx主要功能通用TIMx (TIM2、TIM3、TIM4和TIM5)定时器功能包括: ● 16位向上、向下、向上/向下自动装载计数器 ● 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65536之间的任意数值 ● 4个独立通道:─ 输入捕获─ 输出比较─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出 ● 使用外部信号控制定时器和定时器互连的同步电路 ● 如下事件发生时产生中断/DMA:─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) ─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ─ 输入捕获─ 输出比较 ● 支持针对定位的增量(正交)编码器和霍尔传感器电路 ● 触发输入作为外部时钟或者按周期的电流管理 TIM6和TIM7的主要特性TIM6和TIM7定时器的主要功能包括: ● 16位自动重装载累加计数器 ● 16位可编程(可实时修改)预分频器,用于对输入的时钟按系数为1~65536之间的任意数值分频 ● 触发DAC的同步电路注:此项是TIM6/7独有功能. ● 在更新事件(计数器溢出)时产生中断/DMA请求 强大,高级定时器应该是用于电机控制方面的吧

温控电路PID参数调节方法

在定值控制问题中,如果控制精度要求不高,一般采用双位调节法,不用PID。但如果要求控制精度高,而且要求波动小,响应快,那就要用PID调节或更新的智能调节。调节器就是根据设定值与实际检测到的输出值之间的误差来校正直接控制量的,温度控制中的直接控制量就是加热或制冷的功率。PID调节中,用比例环节(P)来决定基本的调节响应力度,用微分环节(D)来加速对快速变动的响应,用积分环节(I)来消除残留误差。PID调节按基本理论就是属于线性调节。但由于直接控制量的幅度总就是受到限定,所以在实际工作过程中三个调节环节都有可能使控制量进入受限状态。这时系统就是非线性工作。手动对PID进行整定时,总就是先调节比例环节,然后一般就是调节积分环节,最后调节微分环节。温度控制中控制功率与温度之间具有积分关系,为多容系统,积分环节应用不当会造成系统不稳定。许多文献对PID整定都给出推荐参数。 PID就是依据瞬时误差(设定值与实际值的差值)随时间的变化量来对加热器的控制进行相应修正的一种方法!!!如果不修正,温度由于热惯性会有很大的波动、大家讲的都不错、比例:实际温度与设定温度差得越大,输出控制参数越大。例如:设定温控于60度,在实际温度为50与55度时,加热的功率就不一样。而20度与40度时,一般都就是全功率加热、就是一样的、积分:如果长时间达不到设定值,积分器起作用,进行修正积分的特点就是随时间延长而增大、在可预见的时间里,温度按趋势将达到设定值时,积分将起作用防止过冲! 微分:用来修正很小的振荡、方法就是按比例、微分、积分的顺序调、一次调一个值、调到振荡范围最小为止、再调下一个量、调完后再重复精调一次、要求不就是很严格、 先复习一下P、I、D的作用,P就就是比例控制,就是一种放大(或缩小)的作用,它的控制优点就就是:误差一旦产生,控制器立即就有控制作用,使被控量朝着减小误差方向变化,控制作用的强弱取决于比例系数Kp。举个例子:如果您煮的牛奶迅速沸腾了(您的火开的太大了),您就会立马把火关小,关小多少就取决于经验了(这就就是人脑的优越性了),这个过程就就是一个比例控制。缺点就是对于具有自平衡性的被控对象存在静态误差,加大Kp可以减小静差,但Kp过大时,会导致控制系统的动态性能变坏,甚至出现不稳定。所谓自平衡性就是指系统阶跃响应的终值为一有限值,举个例子:您用10%的功率去加热一块铁,铁最终保持在50度左右,这就就是一个自平衡对象,那静差就是怎样出现的呢?比例控制就是通过比例系数与误差的乘积来对系统进行闭环控制的,当控制的结果越接近目标的时候,误差也就越小,同时比例系数与误差的乘积(控制作用)也在减小,当误差等于0时控制作用也为0,这就就是我们最终希望的控制效果(误差=0),但就是对于一个自平衡对象来说这一时刻就是不会持续的。就像此时您把功率降为0,铁就是不会维持50度的(不考虑理想状态下),铁的温度开始下降了,误差又出现了(本人文采不就是很好,废这么多话相信大家应该明白了!)。也就就是比例控制最终会维持一个输出值来使系统处于一个固定状态,既然又输出,误差也就不等于0了,这个误差就就是静差。

STM32最小系统电路

STM32最小系统电路 原创文章,转载请注明出处: 1.电源供电方案 ● VDD = ~:VDD管脚为I/O管脚和内部调压器的供电。 ● VSSA,VDDA = ~:为ADC、复位模块、RC振荡器和PLL的模拟部分提供供电。使用ADC时,VDD不得小于。VDDA和VSSA必须分别连接到VDD和VSS。 ● VBAT = ~:当关闭VDD时,(通过内部电源切换器)为RTC、外部32kHz振荡器和后备寄存器供电。 采用(AMS1117)供电 ]

2.晶振 STM32上电复位后默认使用内部[精度8MHz左右]晶振,如果外部接了8MHz 的晶振,可以切换使用外部的8MHz晶振,并最终PLL倍频到72MHz。 3.JTAG接口 ~ 在官方给出的原理图基本是结合STM32三合一套件赠送的ST-Link II给出的JTAG接口。

ST-Link II SK-STM32F学习评估套件原理图的JTAG连接 很多时候为了省钱,所以很多人采用wiggler + H-JTAG的方案。H-JTAG其实是twentyone大侠开发的调试仿真烧写软件,界面很清新很简洁。 ) H-JTAG界面

H-JTAG软件的下载: H-JTAG官网:大侠的blog: 关于STM32 H-JTAG的使用,请看下一篇博文 Wiggler其实是一个并口下载方案,其实电路图有很多种,不过一些有可能不能使用,所以要注意。你可以在taobao上买人家现成做好的这种Wiggler下载线,最简便的方法是自己动手做一条,其实很简单,用面包板焊一个74HC244就可以了。 ! Wiggler电路图下载: 电路图中”RESET SELECT”和”RST JUMPER”不接,如果接上的话会识别不了芯片。

STM32学习笔记通用定时器PWM输出

STM32学习笔记(5):通用定时器PWM输出 2011年3月30日TIMER输出PWM 1.TIMER输出PWM基本概念 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。一般用来控制步进电机的速度等等。 STM32的定时器除了TIM6和TIM7之外,其他的定时器都可以用来产生PWM输出,其中高级定时器TIM1和TIM8可以同时产生7路的PWM输出,而通用定时器也能同时产生4路的PWM输出。 1.1PWM输出模式 STM32的PWM输出有两种模式,模式1和模式2,由TIMx_CCMRx寄存器中的OCxM位确定的(“110”为模式1,“111”为模式2)。模式1和模式2的区别如下: 110:PWM模式1-在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。 111:PWM模式2-在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为有效电平,否则为无效电平。 由此看来,模式1和模式2正好互补,互为相反,所以在运用起来差别也并不太大。 而从计数模式上来看,PWM也和TIMx在作定时器时一样,也有向上计数模式、向下计数模式和中心对齐模式,关于3种模式的具体资料,可以查看《STM32参考手册》的“14.3.9 PWM模式”一节,在此就不详细赘述了。 1.2PWM输出管脚 PWM的输出管脚是确定好的,具体的引脚功能可以查看《STM32参考手册》的“8.3.7 定时器复用功能重映射”一节。在此需要强调的是,不同的TIMx有分配不同的引脚,但是考虑到管脚复用功能,STM32提出了一个重映像的概念,就是说通过设置某一些相关的寄存器,来使得在其他非原始指定的管脚上也能输出PWM。但是这些重映像的管脚也是由参考手册给出的。比如

温控参数及调试

超高精度智能温度控制仪表 特点:本温度控制仪表为高精测量仪表,可以分度0.1反映实际温度,同时可以串联多个热电偶以获得单位容积内较为平均的温度反映值。实现了快速,稳定,高精度的温度测控,是您自动化控制的得力助手。 参数及调试步骤(暂停状态中) 按住SET键约3秒钟,进入调试状态。数码管显示参数代码0500,. (按UP/DOWN键到所需调试的参数代码),按SET进入参数内容(按UP/DOWN键到所需的参数内容),按SET键保存,参数代码自动+1,退

参数详解(以出厂值为例) 0500:当前温度值将0501设为0可显示 0501:可设定范围0-22,可显示对应参数内容 0502:设定1号输出温度上限值 0503、0504、0505:设定1号时间上限 0506:设定1号输出偏差,如:SE02设定为2000,SE06设定为100,SE03设定为0,SE04设定为20,SE05设定为0,那么当温度到达或大于2000+100=210.0度时1号输出,当温度低于于2000-100=190.0度时1号停止输出,当系统时间大于20分钟时1号一直输出。 0507、0508、0509、0510、0511:功能等同于03-06 0512、0513、0514、0515、0516:功能等同于03-06 0517:温度修正值,如:当前温度显示为-2.7,实际温度为21度,那么两者之间相差23.7度,0517应该设置为237。 0518:这是本温度控制仪表的特殊地方,可以串联多个热电偶放置在不同位置以获得单位容积内平均温度,热电偶串联方式+——+——。 本温度控制仪表设置了TTL通讯,通讯方式为2400,8bit,无校验,无停止位, 发送方式为(01 06然后将参数0-19顺序发出)为满足不同客户的特定需求,我们可以为客户特定开发专用功能 2

温度控制器调试方法

温湿度控制器试验方案 1 外购件介绍 1.1 百科介绍 温湿度控制器是以单片机为控制核心,采用高性能温湿度传感器,采集被测环境的实际温、湿度数据值,可对温度、湿度信号进行测量控制,并可以实现液晶数字显示,还可通过按键或者旋钮对温、湿度分别进行上、下限设置和显示,从而使仪表可以根据现场情况,自动启动风扇或加热器,对被测环境的实际温、湿度自动调节的设备。

1.2 使用场合 对于一些现场自然环境比较恶劣的地区,特别是容易出现高温高湿、或者低温的地区,会配有温湿度控制器来调节装置的运行环境。 1.3 工作模式/原理 根据现场环境需要,温湿度控制器工作模式一般可分为1加热加湿型,2加热除湿型;3降温加湿型;4降温除湿型。我们主要使用的是2加热除湿型;4降温除湿型。 2 外购件通用调试流程 2.1 根据图纸核对温湿度控制器型号。 2.2 给温湿度控制器上电。 根据图纸原理图指示,从端子排接入正确的电源输入,一般为AC220V,也有DC低压电源,需要注意。 2.3 调试方法 根据调试方法的差别,可以将温湿度控制器分为三类:1不带液晶的温度控制器、 2带有液晶但不需要设置工作模式的、3带有液晶且且需要设置工作模式的。 2.31 不带液晶的温度控制器调试方法 此类温度控制器仅可以用于升温模式,温度传感器与控制器为一体的,例如德国Pfannenberg-FLZ520温湿度控制装置,多用于配网柜中,且图纸会要求出厂定值设置为5度。 1. 使用螺丝刀旋转调节设置温度值,调节至室温以上; 2. 用测温枪照射加热器或用手背轻触加热器,温度升高; 3. 测试完后,将温度按照图纸要求设置回定值(一般为5度)。

温控器调节方法

温控器温度调节方法说明 (WDF、WDFE系列温控器温度调节) 1、接通温度调节 此螺钉不可调试 此螺钉调节接通温度 WDF系列温控器应在接通温度调试好后再调试断开温度 调试方法:调节接通温度螺钉时,顺时针调试接通温度上升,逆时针调试接通温度下降;螺钉调试360度,接通温度大约变化1℃。 调试后温度影响:如接通温度调得过高会导致箱体温度偏高,反之,接通温度调得偏低会导致箱体温度偏冷,严重的话会导致冰箱开机频繁。

2、断开温度调节 调试方法:调节断开温度螺钉时,顺时针调试断开温度下降,逆时针调试断开温度上升;螺钉调试360度,断开温度大约变化1℃。 调试后温度影响:如断开温度调得过高会导致箱体温度偏高,严重的话会导致冰箱开机频繁;反之,断开温度调得偏低会导致箱体温度偏冷,严重的话会导致冰箱不停机。 常州西玛特电器有限公司 技术部 2007-7-7

K59型温控器是美国伦科(RANCO)公司生产的定温开机型温控器,目前我们国内电冰箱产品上所用的多为由青岛引进生产的K59(WDF)型温控器。该温控器性能非常稳定,一般情况下不会出现损坏报废的情况。偶尔出现开停机不正常时,都可以通过调整温控器的参数调整螺钉解决,前提是电冰箱的制冷状况必须正常或基本正常。如果制冷太差,参数相差太大,温控器调整余量可能达不到所需要求,必须先解决制冷不足的问题。如果制冷稍有不足,使得温控器不能按正常状况进行控制开停机,就可以通过调整温控器使其与现有的制冷状况相匹配,达到正常的开停机控制。调整温控器时,应正确的选择调整螺丝、调整方向以及正确的掌握调整量,避免越调越乱,达不到调整效果。我现在把这种温控器的外形、调整螺丝的位置和各个调整螺丝的性能特点通过图形标注出来,以供参考:此主题相关图片如下:

STM32入门篇之通用定时器彻底研究

STM32入门篇之通用定时器彻底研究 STM32的定时器功能很强大,学习起来也很费劲儿,本人在这卡了5天才算看明白。写下下面的文字送给后来者,希望能带给你点启发。在此声明,本人也是刚入门,接触STM32不足10天,所以有失误的地方请以手册为准,欢迎大家拍砖。 其实手册讲的还是挺全面的,只是无奈TIMER的功能太复杂,所以显得手册很难懂,我就是通过这样看手册:while(!SUCCESS){看手册…}才搞明白的!所以接下来我以手册的顺序为主线,增加一些自己的理解,并通过11个例程对TIMER 做个剖析。实验环境是STM103V100的实验板,MDK3.2 +Library2.东西都不怎么新,凑合用…… TIMER主要是由三部分组成: 1、时基单元。 2、输入捕获。 3、输出比较。 还有两种模式控制功能:从模式控制和主模式控制。 一、框图 让我们看下手册,一开始是定时器的框图,这里面几乎包含了所有定时器的信息,您要是能看明白,那么接下来就不用再看别的了… 为了方便的看图,我对里面出现的名词和符号做个注解: TIMx_ETR:TIMER外部触发引脚ETR:外部触发输入 ETRP:分频后的外部触发输入ETRF:滤波后的外部触发输入 ITRx:内部触发x(由另外的定时器触发) TI1F_ED:TI1的边沿检测器。 TI1FP1/2:滤波后定时器1/2的输入 TRGI:触发输入TRGO:触发输出 CK_PSC:应该叫分频器时钟输入 CK_CNT:定时器时钟。(定时周期的计算就靠它) TIMx_CHx:TIMER的输入脚TIx:应该叫做定时器输入信号x

ICx:输入比较x ICxPS:分频后的ICx OCx:输出捕获x OCxREF:输出参考信号 关于框图还有以下几点要注意: 1、影子寄存器。 有阴影的寄存器,表示在物理上这个寄存器对应2个寄存器,一个是程序员可以写入或读出的寄存器,称为preload register(预装 载寄存器),另一个是程序员看不见的、但在操作中真正起作用的寄存 器,称为shadow register(影子寄存器);(详细请参考版主博客 https://www.wendangku.net/doc/9a11839315.html,/STM32/401461/message.aspx) 2、输入滤波机制 在ETR何TIx输入端有个输入滤波器,它的作用是以采样频率 Fdts来采样N次进行滤波的。(具体也请参考版主博客 https://www.wendangku.net/doc/9a11839315.html,/STM32/263170/message.aspx ) 3、输入引脚和输出引脚是相同的。 二、时基单元 时基单元有三个部分:CNT、PSC、ARR。CNT的计数方式分三种:向上、向下、中央对齐。通俗的说就是0—ARR、ARR—0、0—(ARR-1)—ARR—1. 三、时钟源的选择 这个是难点之一。从手册上我们看到共有三种时钟源: 1、内部时钟。 也就是选择CK_INT做时钟,这个简单,但是有一点要注意,定 时器的时钟不是直接来自APB1或APB2,而是来自于输入为

温控电路PID参数的调节方法

在定值控制问题中,如果控制精度要求不高,一般采用双位调节法,不用PID。但如果要求控制精度高,而且要求波动小,响应快,那就要用PID调节或更新的智能调节。调节器是根据设定值和实际检测到的输出值之间的误差来校正直接控制量的,温度控制中的直接控制量是加热或制冷的功率。PID调节中,用比例环节(P)来决定基本的调节响应力度,用微分环节(D)来加速对快速变动的响应,用积分环节(I)来消除残留误差。PID调节按基本理论是属于线性调节。但由于直接控制量的幅度总是受到限定,所以在实际工作过程中三个调节环节都有可能使控制量进入受限状态。这时系统是非线性工作。手动对PID进行整定时,总是先调节比例环节,然后一般是调节积分环节,最后调节微分环节。温度控制中控制功率和温度之间具有积分关系,为多容系统,积分环节应用不当会造成系统不稳定。许多文献对PID整定都给出推荐参数。 PID是依据瞬时误差(设定值和实际值的差值)随时间的变化量来对加热器的控制进行相应修正的一种方法!!!如果不修正,温度由于热惯性会有很大的波动.大家讲的都不错. 比例:实际温度与设定温度差得越大,输出控制参数越大。例如:设定温控于60度,在实际温度为50和55度时,加热的功率就不一样。而20度和40度时,一般都是全功率加热.是一样的. 积分:如果长时间达不到设定值,积分器起作用,进行修正积分的特点是随时间延长而增大.在可预见的时间里,温度按趋势将达到设定值时,积分将起作用防止过冲! 微分:用来修正很小的振荡. 方法是按比例.微分.积分的顺序调.一次调一个值.调到振荡范围最小为止.再调下一个量.调完后再重复精调一次. 要求不是很严格. 先复习一下P、I、D的作用,P就是比例控制,是一种放大(或缩小)的作用,它的控制优点就是:误差一旦产生,控制器立即就有控制作用,使被控量朝着减小误差方向变化,控制作用的强弱取决于比例系数Kp。举个例子:如果你煮的牛奶迅速沸腾了(你的火开的太大了),你就会立马把火关小,关小多少就取决于经验了(这就是人脑的优越性了),这个过程就是一个比例控制。缺点是对于具有自平衡性的被控对象存在静态误差,加大Kp可以减小静差,但Kp过大时,会导致控制系统的动态性能变坏,甚至出现不稳定。所谓自平衡性是指系统阶跃响应的终值为一有限值,举个例子:你用10%的功率去加热一块铁,铁最终保持在50度左右,这就是一个自平衡对象,那静差是怎样出现的呢?比例控制是通过比例系数与误差的乘积来对系统进行闭环控制的,当控制的结果越接近目标的时候,误差也就越小,同时比例系数与误差的乘积(控制作用)也在减小,当误差等于0时控制作用也为0,这就是我们最终希望的控制效果(误差=0),但是对于一个自平衡对象来说这一时刻是不会持续的。就像此时你把功率降为0,铁是不会维持50度的(不考虑理想状态下),铁的温度开始下降了,误差又出现了(本人文采不是很好,废这么多话相信大家应该明白了!)。也就是比例控制最终会维持一个输出值来使系统处于一个固定状态,既然又输出,误差也就不等于0了,这个误差就是静差。

STM32通用定时器

STM32通用定时器 一、定时器的基础知识 三种STM32定时器区别 通用定时器功能特点描述: STM3 的通用 TIMx (TIM2、TIM3、TIM4 和 TIM5)定时器功能特点包括: 位于低速的APB1总线上(APB1) 16 位向上、向下、向上/向下(中心对齐)计数模式,自动装载计数器(TIMx_CNT)。 16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数 为 1~65535 之间的任意数值。 4 个独立通道(TIMx_CH1~4),这些通道可以用来作为: ①输入捕获 ②输出比较 ③ PWM 生成(边缘或中间对齐模式) ④单脉冲模式输出 可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外一个定时器)的同步电路。 如下事件发生时产生中断/DMA(6个独立的IRQ/DMA请求生成器): ①更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) ②触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ③输入捕获 ④输出比较 ⑤支持针对定位的增量(正交)编码器和霍尔传感器电路 ⑥触发输入作为外部时钟或者按周期的电流管理 STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)等。 使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。 STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。 定时器框图:

倍频得到),外部时钟引脚,可以通过查看数据手册。也可以是TIMx_CHn,此时主要是实现捕获功能; 框图中间的时基单元 框图下面左右两部分分别是捕获输入模式和比较输出模式的框图,两者用的是同一引脚,不能同时使用。

STM32通用定时器学习

STM32通用定时器 STM32的定时器功能很强大,学习起来也很费劲儿. 其实手册讲的还是挺全面的,只是无奈TIMER的功能太复杂,所以显得手册很难懂,我就是通过这样看手册:while(!SUCCESS){看手册…}才搞明白的!所以接下来我以手册的顺序为主线,增加一些自己的理解,并通过11个例程对TIMER做个剖析。实验环境是STM103V100的实验板,MDK3.2 +Library2.东西都不怎么新,凑合用…… TIMER主要是由三部分组成: 1、时基单元。 2、输入捕获。 3、输出比较。 还有两种模式控制功能:从模式控制和主模式控制。 一、框图 让我们看下手册,一开始是定时器的框图,这里面几乎包含了所有定时器的信息,您要是能看明白,那么接下来就不用再看别的了… 为了方便的看图,我对里面出现的名词和符号做个注解: TIMx_ETR:TIMER外部触发引脚 ETR:外部触发输入 ETRP:分频后的外部触发输入 ETRF:滤波后的外部触发输入 ITRx:内部触发x(由另外的定时器触发) TI1F_ED:TI1的边沿检测器。 TI1FP1/2:滤波后定时器1/2的输入 TRGI:触发输入 TRGO:触发输出 CK_PSC:应该叫分频器时钟输入 CK_CNT:定时器时钟。(定时周期的计算就靠它) TIMx_CHx:TIMER的输入脚 TIx:应该叫做定时器输入信号x ICx:输入比较x ICxPS:分频后的ICx OCx:输出捕获x OCxREF:输出参考信号 关于框图还有以下几点要注意: 1、影子寄存器。 有阴影的寄存器,表示在物理上这个寄存器对应2个寄存器,一个是程序员可以写入或读出的寄存器,称为preload register(预 装载寄存器),另一个是程序员看不见的、但在操作中真正起作用的 寄存器,称为shadow register(影子寄存器);(详细请参考版主博客 https://www.wendangku.net/doc/9a11839315.html,/STM32/401461/message.aspx) 2、输入滤波机制 在ETR何TIx输入端有个输入滤波器,它的作用是以采样频率 Fdts来采样N次进行滤波的。(具体也请参考版主博客 https://www.wendangku.net/doc/9a11839315.html,/STM32/263170/message.aspx) 3、输入引脚和输出引脚是相同的。 二、时基单元 时基单元有三个部分:CNT、PSC、ARR。CNT的计数方式分三种:向上、

STM32F103通用定时器PWM应用例程--蜂鸣器演奏乐曲

STM32F103通用定时器PWM应用例程:蜂鸣器演奏乐曲 一.说明:本例程是将流明LM3SLib_Timer.pdf文档中的例程9及例程10(PWM应用:蜂鸣器演奏乐曲),移植到STM32F103上。 二.流明LM3SLib_Timer.pdf例程9及例程10的拷贝: 例程9.Timer PWM应用:蜂鸣器发声 如图1.1所示,为EasyARM1138开发板上的蜂鸣器驱动电路。蜂鸣器类型是交流蜂鸣器,也称无源蜂鸣器,需要输入一列方波才能鸣响,发声频率等于驱动方波的频率。 图1.1 蜂鸣器驱动电路 程序清单1.9是Timer模块16位PWM模式的一个应用,可以驱动交流蜂鸣器发声,运行后蜂鸣器以不同的频率叫两声。其中"buzzer.h"和"buzzer.c"是蜂鸣器的驱动程序,仅有3个驱动函数,用起来很简捷。 程序清单1.9 Timer PWM应用:蜂鸣器发声 文件:main.c #include "systemInit.h" #include "buzzer.h" // 主函数(程序入口) int main(void) { jtagWait(); // 防止JTAG失效,重要! clockInit(); // 时钟初始化:晶振,6MHz buzzerInit(); // 蜂鸣器初始化 buzzerSound(1500); // 蜂鸣器发出1500Hz声音 SysCtlDelay(400* (TheSysClock / 3000)); // 延时约400ms buzzerSound(2000); // 蜂鸣器发出2000Hz声音 SysCtlDelay(800* (TheSysClock / 3000)); // 延时约800ms buzzerQuiet( ); // 蜂鸣器静音 for (;;) { } } 文件:buzzer.h #ifndef __BUZZER_H__ #define __BUZZER_H__ // 蜂鸣器初始化 extern void buzzerInit(void); // 蜂鸣器发出指定频率的声音 extern void buzzerSound(unsigned short usFreq); // 蜂鸣器停止发声 extern void buzzerQuiet(void);

温度控制器调试方法

温湿度控制器试验方案

1 外购件介绍 1.1 百科介绍 温湿度控制器是以单片机为控制核心,采用高性能温湿度传感器,采集被测环境的实际温、湿度数据值,可对温度、湿度信号进行测量控制,并可以实现液晶数字显示,还可通过按键或者旋钮对温、湿度分别进行上、下限设置和显示,从而使仪表可以根据现场情况,自动启动风扇或加热器,对被测环境的实际温、湿度自动调节的设备。 1.2 使用场合 对于一些现场自然环境比较恶劣的地区,特别是容易出现高温高湿、或者低温的地区,会配有温湿度控制器来调节装置的运行环境。 1.3 工作模式/原理 根据现场环境需要,温湿度控制器工作模式一般可分为1加热加湿型,2加热除湿型;3降温加湿型;4降温除湿型。我们主要使用的是2加热除湿型;4降温除湿型。 2 外购件通用调试流程 2.1 根据图纸核对温湿度控制器型号。 2.2 给温湿度控制器上电。 根据图纸原理图指示,从端子排接入正确的电源输入,一般为AC220V,也有DC 低压电源,需要注意。 2.3 调试方法 根据调试方法的差别,可以将温湿度控制器分为三类:1不带液晶的温度控制器、2带有液晶但不需要设置工作模式的、3带有液晶且且需要设置工作模式的。 2.31 不带液晶的温度控制器调试方法 此类温度控制器仅可以用于升温模式,温度传感器与控制器为一体的,例如德国Pfannenberg-FLZ520温湿度控制装置,多用于配网柜中,且图纸会要求出厂定值设置为5度。

1. 使用螺丝刀旋转调节设置温度值,调节至室温以上; 2. 用测温枪照射加热器或用手背轻触加热器,温度升高; 3. 测试完后,将温度按照图纸要求设置回定值(一般为5度)。 2.32 带有液晶,但不需要设置工作模式类型控制器 此类控制器可用于升温,也可用于除湿降温,根据需要可以配有加热器,风扇。当环境温度低于设定温度低值时,加热器工作,当环境温度高于设定温度高值时,风扇工作,当环境湿度高于设置湿度定值时,加热器工作,例如道尔斯特DST-11401-G温湿度控制装置。 1.上电后观察液晶显示是否正常 2.测试湿度传感器及加热器:用小喷壶对准湿度传感器喷水,观察液晶上湿度 变化,当湿度超过80%时(默认湿度定值为80%),液晶左侧湿度灯亮,用 测温枪照射加热器或用手背轻触加热器,温度升高,除湿功能正常。 3.测试温度传感器及风扇:重新设置定值,将温度高值改置室温以下,液晶左 侧温度灯亮,同时风扇启动,确认风扇风向向柜外,降温功能正常。将温度 高值定值恢复为默认值。 2.33 带有液晶且需要设置工作模式类型控制器

STM32通用定时器(TIM2-5)基本用法

STM32通用定时器(TIM2-5)基本用法 (2011-08-18 21:13:42) STM32的定时器是个强大的模块,定时器使用的频率也是很高的,定时器可以做一些基本的定时,还可以做PWM 输出或者输入捕获功能。从系统框架图下看,名为TIMx的有八个,其中TIM1和TIM8挂在APB2总线上,而TIM2-TIM7则挂在APB1总线上。其中TIM1&TIM8称为高级控制定时器(advanced control timer).他们所在的APB2总线也比APB1总线要好。APB2可以工作在72MHz下,而APB1最大是36MHz。 由上图可知,当APB1 的预分频系数为1 时,这个倍频器不起作用,定时器的时钟频率等于APB1 的频率;当APB1的预分频系数为其它数值(即预分频系数为2、4、8 或16)时,这个倍频器起作用,定时器的时钟频率等于APB1 的频率两倍。也就是,当APB1不分频,TIM3的时钟速度为36MHz,当2分频是,APB1变成18MHz,但是TIM 又会倍频,即TIM时钟等于18*2=36MHz。这里我们用向上计数的方式,即TIMx_CNT中的计数值达到TIMx_ARR 中的值时,产生中断,TIMx_CNT又从0开始计。 按以下步骤编程: 1.系统初始化,主要初始化时钟等。 2.GPIO初始化,用于LED,有了灯就便于观察了。 3.TIM3的配置。 4.NVIC的配置。 5.编写中断服务函数。 void GPIO_PA_Init() {//PA8管脚配置 GPIO_InitTypeDef GPIO_InitStructure; GPIO_DeInit(GPIOA); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;

温控表调试001

调试内容:物料&工具: 2.逐步打开胶阀1,胶阀2加热开关,检查温控表是否有显示,IO是否正确,见图3,正常有显示图4。 胶阀加热测温手工操作 1.把胶阀加热圈插在胶阀加热插座,见图1。 图1 图2 胶阀1加热插座 正视 胶阀2加热插座 胶阀1加热开关胶阀2加热开关 技术要求&注意事项 1.胶阀加热调试前,先确定温控表电源是否接通,输入感温探头是否连接,表1与表2电源是否插反 。 图3,IO输出 图4

调试内容:物料&工具: 手工操作,使用说明书。 初始设定菜单 1.输入类型写入,按住(菜单键)至少3秒,进入图2,按(上下键)调制为2,等到绿色数字不闪耀,写入成功。 2.PID写入,在图2状态下,单按4次(模式键)进入图3,按(上下键)调制为PID,等到绿色数字不闪耀,写入成功。 3.自校正写入,在图3状态下,单按2次(模式键)进入图4,按(上下键)调制为ON,等到绿色数字不闪耀,写入成功。 4.控制周期写入,在图4状态下,单按1次(模式键)进入图5,按(上下键)调制为0.2秒,等到绿色数字不闪耀,写入成功。 5.退出菜单,在图5状态下,按图1, 上下键 菜单键模式键图2,输入类型 技术要求&注意事项1.写入参数前,先确定温控表电源是否接通,输入感温探头是否连接。 2.写入参数,请按此要求操作,禁止修改此指导书没有显示或特殊说明的其它参数。 住(菜单键)至少3秒,等待跳入图6,放开手指完成本次设定。 图3,PID 图4,自校正 图5,控制周期图6,

调试内容:物料&工具: 操作菜单&调整菜单手工操作,使用说明书。 1.报警值写入,在图1的状态下,单按4次(模式键),进入图2状态,按(上下键)调制为0.3,等到绿色数字不闪耀,写 入成功。2.偏移量写入,在图2状态下,单按1次(菜单键),进入图3,在按6次(模式键),进入图4状态,按(上下键)调制为3.0,等到绿色数字不闪耀,写 入成功。 3.退出,在图4的状态下,按住(菜单键)至少3秒,进入图5松手,在一次按住(菜单键)至少3秒,进入图6退出,放开手指完成本次设定 5.检查温度显示是否正常,不加热情况下显示常温温度。 图1,报警值 图2, 上下键 模式键菜单键技术要求&注意事项1.写入参数前,先确定温控表电源是否接通,输入感温探头是否连接。 2.写入参数,请按此要求操作,禁止修改此指导书没有显示或特殊说明的其它参数。 图3, 图4,PV输入偏移量 图6,退出菜单 图5 图7

富士温度控制器的调试说明

富士温度控制器的调试说明 1.确保连接线无误后,打开温度控制器的电源 PV:环境温度 SV:设定温度 2.参数调试 2.1设置传感器输入类型 富士温度控制器说明书内Table1的表格中,有各种传感器的输入类型代码,我公司一般采用Pt100,在第二组参数中,将参数P-n2设置为1。 2.2设置温度的调节范围 富士温度控制器说明书内Table3,有传感器的输入范围,根据实际需要调节的温度范围,在第二组参数中,设置P-SL(温度调节范围的下限),和P-SU(温度调节范围的上限),注意不要超过传感器温度的输入范围。 2.3小数点的设置 在第二组参数中将P-dP设置为1,温度显示精确到小数点的后一位。 2.4制冷控制 2.4.1在第二组参数中,设置P=0选择开/关控制 2.4.2在第三组参数中,设置P-n1设置为2或3选择正向操作 2.4.3在第二组参数中,设置偏差HYS避免频繁起动。 当PV>SV+HYS偏差时,温控器有输出(压缩机工作);当温度下降达到PV≤SV温控器停止输出(压缩机停机)

2.5加热控制 2.5.1在第二组参数中,设置P=0选择开/关控制 2.5.2在第三组参数中,设置P-n1设置为0或1选择反向操作 2.5.3在第二组参数中,设置偏差HYS避免频繁起动。 当PVAL1时,机组停机报警,超温指示灯亮。

相关文档