STM8S的停机dell省电模式无法唤醒 唤醒是由外部事件重置 什么意思

stm8s&外部中断使用
stm8s103K 引脚的外部中断
用户可以在I/O引脚为输入模式时通过设置Px_CR2寄存器的相应位来配置某个I/O作为外部输入中断模式。在该配置下,I/O引脚上的一个信号沿或是低电平会产生一个中断请求。在XTI_CR[2:1]寄存器中对于每一个中断向量都可以独立编程为上升沿或下降沿触发。
外部中断只有在对应的I/O口被设置为输入模式下才有效。
外部中断可以用来把MCU从停机(Halt)模式唤醒。外部中断触发方式的选择可以通过软件写控制外部中断控制寄存器(EXTI_CRx)来实现。
当多个连接到同一个中断向量的外部引脚中断被同时选定时候,那么它们是‘逻辑或’的关系。
当外部的电平触发中断被锁存后,如果该给定的电平一直保持到中断子程序结束,那么该电平信号将再次触发中断,除非在中断子程序中禁用该中断。
STM8S为外部中断事件专门分配了五个中断向量:
PortA 口 的5个引脚:PA[6:2]
& &对应的中断源
的8个引脚:PB[7:0]&&
&对应的中断源 &EXTI1
的8个引脚:PC[7:0]&&
&对应的中断源 &EXTI2
的7个引脚:PD[6:0]&&
&对应的中断源 &EXTI3
的8个引脚:PE[7:0]&&
&对应的中断源 &EXTI4
使用外部中断程序:
1、在stm8_interrupt_vector.c中添加如下代码:
函数声明:extern @far
@interrupt void EXTI_PORTB_IRQHandler(void);
入口地址:{0x82,
(interrupt_handler_t)EXTI_PORTB_IRQHandler},
2、设置PB引脚及触发模式:
& &PB_DDR =
0X07;//PB3,PB4,PB5,PB6,PB7为输入模式
& & PB_CR1 =
& & PB_CR2 =
& &EXTI_CR1 &=
0XF9;//设置触发模式
& & EXTI_CR1 |= 0X04;
3、main.c中添加中断处理程序:
@far @interrupt void EXTI_PORTB_IRQHandler(void)
_asm("sim"); & &//关总中断
delay(50);
_asm("rim"); & &//开总中断
STM8S有5组IO端口,每组端口分别有若干引脚可以作为外部中断触发输入,分别为:
端口A: PA[6:2];端口B: PB[7:0];端口C: PC[7:0];端口D: PD[6:0];端口E:
Interrupt management
Nested interrupt controller with 32
interrupts
Up to 37 external interrupts on 6
External interrupts
Five interrupt vectors are dedicated to external Interrupt
● 5 lines on Port A: PA[6:2]
● 8 lines on Port B: PB[7:0]
● 8 lines on Port C: PC[7:0]
● 7 lines on Port D: PD[6:0]
● 8 lines on Port E: PE[7:0]
PD(7) is the Top Level Interrupt source (TLI).
To generate an interrupt, the corresponding GPIO port must be
configured in input mode
with interrupts enabled. Refer to the register description in the
GPIO chapter for details.
When an external interrupt occurs, the corresponding bit is set in
the EXTI_SRx status
register. This indicates a pending interrupt. Clearing this bit, writing a 1 in it, clears
corresponding pending external interrupt.
The interrupt sensitivity must be configured
in the external interrupt control register 1
(EXTI_CR1) and external interrupt control
register 2 (EXTI_CR2)。
ALT="stm8s&外部中断使用"
TITLE="stm8s&外部中断使用" />
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。21ic官方微信 -->
您现在的位置是:&>&&>&
STM8S单片机入门2(关机模式开关机按钮)
开关机功能是使用电池供电系统的最基本功能。如果使用机械式开关(2段拨动开关,自锁开关等)等直接接通和切断电源,不说机械部件的可靠性,至少自动关机(一般在长时间不操作、电池电量低时需要自动关机)功能就比较难实现。所以电池供电系统一般采用按钮开关,用一个按钮配合软件实现按一次开机、再按一次关机的功能及自动关机的功能。
这部分内容就讲述如何在上实现一键式的开关机功能。开关机功能要使用单片机的一个引脚(PD4)作为输入端,连接到按钮,接收按纽按下产生的电信号,然后再使用另一个引脚(PD3)作为输出端去驱动由三极管8550构成的一个电子开关实现对系统电源的控制。而STM8S单片机本身就直接接在电池上,利用单片机的停机模式,将单片机本身的电流降低到&A级,对电池的消耗就可以忽略不计了。
1、电路设计
电路图如下,C1是STM8S单片机VCAP电容,保持内部1.8V电压的稳定,是STM8S单片机唯一必须接要的外部元件,选用容量为1&F的瓷片电容,而且从电路可靠性讲,这个电容越靠近单片机IC越好。
K1是按钮,一端接到单片机的PD4引脚上,另一端接地,这样按钮被按下就会产生一个低电平的脉冲。
Q1是三极管,通过发光二极管D1和限流电阻R1接到单片机的PD3上。这样当PD3输出低电平时,Q1导通,VCC上有电压,可以对系统供电,反之PD3输出高电平时,Q1截止VCC没有电压。
发光二极管D1还兼作电源指示灯的作用, Q1导通时发光反之不发光。
剩余的C2~C5都是电源退藕电容,用于消除电源上的干扰信号。P1、P2两个接线端分别接3.6V锂电池的正负极。
2、软件设计
软件要实现的功能是,在PD4引脚上监控按钮按下产生的低电压脉冲信号,并根据这个信号来设置PD3引脚的输出电平去控制Q1的导通和截止,以及设置单片机自身的工作状态,以此实现对电源供电的控制。
1)引脚工作模式设置
首先要做的,就是设置单片机引脚的工作模式,把PD4设置为输入模式,D3设置为输出模式。
在STM8S_StdPeriph_Lib库中,可以使用这个函数进行设置:
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, GPIO_Mode_TypeDef GPIO_Mode)
GPIOx是端口编号,取值有GPIOA、GPIOB、GPIOC、GPIOD,分别对应单片机的PAx、PBx、PCx、PDx端口,GPIO_Pin是引脚编号,取值有GPIO_PIN_1~GPIO_PIN_7,函数通过GPIOx和GPIO_Pin两个参数指定一个唯一的引脚。
GPIO_Mode是工作模式了。表示输入模式的取值有四种,分别是要不要上拉,要不要中断的四种组合:
GPIO_MODE_IN_FL_NO_IT Input floating, no external interrupt
GPIO_MODE_IN_PU_NO_IT Input pull-up, no external interrupt
GPIO_MODE_IN_FL_IT Input floating, external interrupt
GPIO_MODE_IN_PU_IT Input pull-up, external interrupt
要上拉的话,单片机内部会自动为引脚提供一个上拉电流,在没有外部输入的情况下,引脚就是高电平了。
表示输出模式的取值有8种,分别是是否开漏输出、输出高低电平、是否高速输出的组合:
GPIO_MODE_OUT_OD_LOW_FAST Output open-drain, low level, 10MHz
GPIO_MODE_OUT_PP_LOW_FAST Output push-pull, low level, 10MHz
GPIO_MODE_OUT_OD_LOW_SLOW Output open-drain, low level, 2MHz
GPIO_MODE_OUT_PP_LOW_SLOW Output push-pull, low level, 2MHz
GPIO_MODE_OUT_OD_HIZ_FAST Output open-drain, high-impedance level,10MHz
GPIO_MODE_OUT_PP_HIGH_FAST Output push-pull, high level, 10MHz
GPIO_MODE_OUT_OD_HIZ_SLOW Output open-drain, high-impedance level, 2MHz
GPIO_MODE_OUT_PP_HIGH_SLOW Output push-pull, high level, 2MHz
在这个应用中,需要把PD4设置为带上拉(因为按钮未按下时要呈高电平)、有中断的输入模式。开机时,PD3要设置为低电平的输出模式(低电平才能让Q1导通)。关机时PD3要设置为不带上拉的输入模式,所以这部分代码要这样写:
GPIO_Init(GPIOD, GPIO_PIN_4, GPIO_MODE_IN_PU_IT); //PD4设置为带上拉、有中断的输入模式
GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_OUT_PP_LOW_FAST); //开机时把PD3设置低电平的输入模
GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_IN_FL_NO_IT);//关机时把PD3设置低电平的输入模式
额外提一下,除了GPIO_Init函数可以设置引脚是输出高电平还是低电平,还可以用下面四个函数继续引脚的高低电平:
void GPIO_Write(GPIO_TypeDef* GPIOx, uint8_t PortVal) //输出PortVal指定的电平
void GPIO_WriteHigh(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins) //输出高电平
void GPIO_WriteLow(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins) //输出低电平
void GPIO_WriteReverse(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins) //高低电平翻转一次
2)停机模式设置
STM8S单片机有停机模式,在停机模式下,单片机功耗降到最低,所有时钟停止工作,但可以保留RAM和寄存器的值,停机模式只能可以通过下面几种方式退出:
-外部中断(GPIO)
-CAN接收中断
-SPI传输结束
-I2C中断(从地址匹配)
通过执行HALT指令,也就是执行库函数的halt()函数进入停机模式。
3)设置外部中断
外部中断通过SetExtIntSensitivity函数设置:
void EXTI_SetExtIntSensitivity(EXTI_Port_TypeDef Port, EXTI_Sensitivity_TypeDef SensitivityValue)
其中Port是要设置外部中断的端口,取值有GPIOA、GPIOB、GPIOC、GPIOD,分别对应单片机的PAx、PBx、PCx、PDx端口;
SensitivityValue是外部中断类型,有以下几种取值,分别表示下降沿和低电平触发中断、上升沿触发中断、下降沿触发中断、上升沿和下降沿触发中断:
EXTI_SENSITIVITY_FALL_LOW Interrupt on Falling edge and Low level
EXTI_SENSITIVITY_RISE_ONLY Interrupt on Rising edge only
EXTI_SENSITIVITY_FALL_ONLY Interrupt on Falling edge only
EXTI_SENSITIVITY_RISE_FALL Interrupt on Rising and Falling edges
在这个应用中,按钮按下是产生下降沿,要选取EXTI_SENSITIVITY_FALL_ONLY模式。
设置中断模式后,还需要启用中断,使用enableInterrupts()函数启用。
4)外部中断处理程序
在官方提供的STM8S_StdPeriph_Lib库自带的模板中,中断处理程序都在stm8s_it.c中实现。stm8s_it.c中已经根据中断向量设置好了每种中断处理程序的入口函数。只需在相应函数中填入内容即可。
这个应用中是要编写GPIOD端口的外部中断处理函数,所以要在这个中
这个应用中是要编写GPIOD端口的外部中断处理函数,所以要在这个中断处理函数中增加开关机的内容:
INTERRUPT_HANDLER(EXTI_PORTD_IRQHandler, 6)
5)整体程序设计和源代码
单片机程序流程图如下,包含主程序main()的流程和stm8s_it.c的外部中断处理程序流程:
具体源代码如下,关键点前面已经介绍,就不再详细说明了:
A)main.c的源代码:
void Delay(uint16_t nCount)//定义延时函数,FFFF大约是0.2s
while (nCount != 0)
bool fPowerOn_flag =FALSE;//定义开关机标志
void main(void)
GPIO_Init(GPIOD,GPIO_PIN_4,GPIO_MODE_IN_PU_IT);
EXTI_SetExtIntSensitivity(EXTI_PORT_POWER_KEY,EXTI_SENSITIVITY_FALL_ONLY);
enableInterrupts();
if(fPowerOn_flag == FALSE)
GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_IN_FL_NO_IT);//PD3脚设置为输入模式,Q1截止
halt();//进入停机模式
GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_OUT_PP_LOW_FAST);//PD3脚设置为输出模式且为低电平,Q1导通
//插入用户自定义的代码
B)stm8s_it.c的源代码:
void Delay(uint16_t nCount); //Delay函数在main.c中定义
extern bool fPowerOn_ //fPowerOn_flag在main.c中定义,所以这里要声明成外部变量
INTERRUPT_HANDLER(EXTI_PORTD_IRQHandler, 6)
Delay(6000); //延时消抖
if(!GPIO_ReadInputPin(GPIOD, GPIO_PIN_3))//判断是不是按钮被按下
if(fPowerOn_flag)
fPowerOn_flag=FALSE;
fPowerOn_flag=TRUE;
3、关机后实测结果
使用STM8S开发板实测关机电流,为40&A左右:
按18650锂电池的典型容量2500mah计算,关机后可以支持2500mah/0.04ma/24小时/365天=7.1年,已经超过电池的充电循环使用寿命了,基本可以接受,不过应该还没有达到最低值,还可以研究Datasheet,继续优化软件,进一步减低关机电流。
开关机部分就讲完了,最后总结一下,这部分学习到的知识点包括:
1、单片机硬件设计,至少需要一个VCAP电容接到VCAP引脚和地之间,选用容量为1&F的瓷片电容,电在路布局上,这个电容越靠近单片机IC越好。
2、设置各个引脚的输入、输出模式设置方法
3、进入和退出停机模式的方法
4、设置外部中断和中断处理程序
3D打印在短短的时间里便取得了不少令人惊讶的成就:3D打印的桥、3D打印的建筑物、甚至3D打印的脑支架。然而这回,3D打印技术达成了一个新成就,且其潜在的应用价值非常广。研究人员首次得以证明:3D打印能够生产出功能正常的电子元件,包括电阻器......关键字:
超级电容(Supercapacitors)能快速充电的特性,可应用在全电动公车、电动车,甚至是穿戴式设备,相关材料的研究也持续进行,德国莱布尼兹新材料研究院(Leibniz
Institute for New Materials,INM)......关键字:
  通用运动控制技术现状、发展及其应用:运动控制技术的发展是制造自动化前进的旋律,是推动新的产业革命的关键技术。运动控制器已经从以单片机或微处理器作为核心的运动控制器和以专用芯片(ASIC)作为核心处理器的......关键字:
英特尔于日宣布了4004处理器及其芯片集,它是芯片巨人第一个完整的单片机和第一个商业微处理器。4004处理器有2300个晶体管,手指甲大小,计算性能与第一代电子计算机相当,但第一代计算机需要占据整间房......关键字:
从今年年初开始,就有消息称三星Note8或者苹果iPhone X将会搭载屏下指纹识别技术。但是,当两款新机面向公众发布之后,屏下指纹均缺失。
......关键字:
近日,中国科学院合肥物质科学研究院等离子体物理研究所博士王奇和南京师范大学教授韩敏课题组合作,在高性能杂原子掺杂石墨烯基纳米结构的规模化制备及其在柔性全固态超级电容器应用方面取得新进展。
......关键字:
该音频处理器是由SignetICs/飞利浦TDA3810N立体,空间,伪立体声处理器和集成电路构成……
一、 硬件消抖 :按键防抖电路控制电路所示利用RC 积分电路来达成杂波的滤除与波形修整……
LTC3780LTC3780是一款高性能降压-升压型开关稳压控制器,可在输入电压高于、低于或等于……博客访问: 376335
博文数量: 132
博客积分: 2284
博客等级: 大尉
技术积分: 1300
注册时间:
http://guliqun1983./blog/static//
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: 嵌入式
中断控制器提供如下功能: ● 硬件中断的管理 ─&& 所有I/O 引脚都具有外部中断能力,每一个端口都有独立的中断向量以及独立的标志。 ─&& 外设中断能力 ● 软件中断的管理(TRAP) ● 具有灵活的优先级和中断等级管理,支持可嵌套的或同级中断管理: –& 多达4个软件可编程的嵌套等级 –& 最多有32个中断向量,其入口地址由硬件固定 –&& 2 不可屏蔽的事件: RESET, TRAP –&& 1 个不可屏蔽的最高优先级的硬件中断 (TLI) &&&&&& 基于如下资源的中断管理: ● 位I1 和I0 位于CPU的条件代码寄存器(CCR) ● 软件优先级寄存器 (ITC_SPRx) ● 复位向量地址0x00 8000 位于程序空间的起始部分。对于具有启动ROM的型号,ST公司把复位初始化程序固化在ROM区中。 ● 固定的中断向量地址位于程序空间映像的高位地址段(0x00 8004 to 0x00 807C) ,其地址顺序即为硬件的优先顺序。
中断屏蔽和处理流程 &&&&&& 中断屏蔽是通过CC寄存器的位I1 和位I0 以及设置每个中断向量( 表13) 的软件优先级的ITC_SPRx来管理的。处理流程如图所示: 当一个中断请求必须被响应时: 1. 在当前正在执行指令结束之后,正常的操作被悬起; 2. PC,X,Y,A和CC寄存器被自动压栈; 3. 根据ITC_SPRx 寄存器中的值对应的中断服务向量,CC寄存器中的位I1 和I0 被相应设置; 4. 通过中断向量载入中断服务子程序的入口地址,接着对中断服务子程序的第一条指令取址( 参考表中断映射表& 来了解向量地址的更详细情况)。 &&&&&& 中断服务子程序必须以IRET指令结束,该指令会把堆栈中的保存的寄存器内容出栈,同时由于运行IRET 指令,位I1 和位I0 被重新恢复,程序也恢复运行。
& 处理等待(排队)的中断 &&&& 同一时间可以有几个中断排队等待处理。中断响应是根据如下两步来决定的: 1、最高软件优先级的中断被响应; 2、如果几个排队的中断具有相同的软件优先级,那么最高硬件优先级的中断先响应。 &&&& 当中断请求没有立即得到响应时,该中断请求被锁存;当其软件优先级及硬件优先级均为最高的时候,该中断被处理。 注意:
1、与软件优先级不同,每个中断的硬件优先级是唯一且互不相同的,这样就可保证一个时刻只有一个中断被唯一确定地处理。 2、RESET, TLI 和 TRAP 这个几个中断被认为是拥有最高的软件优先级来处理。 3、一个TLI中断可中断除TRAP 及RESET之外的3级中断。 &&& 见图了解更加详细的排队等待处理的中断服务过程。&&
中断源 STM8 中断控制器处理2种类型的中断源: ● 不可屏蔽的中断: RESET ,TLI& 和 TRAP ● 可屏蔽中断:& 外部中断或者内嵌的外设中断 不可屏蔽中断源 &&&&& 不可屏蔽中断不会考虑CC寄存器的I1 和I0 的状态(参见图) 。仅仅当TRAP 中断发生时候将PC, X, Y, A 和 CC& 寄存器的内容压栈。相应的向量载入到PC寄存器中同时置位I1 和I0 位禁止中断(3级优先级)。 ● TRAP (不可屏蔽的软件中断) 当执行TRAP 指令时就响应软件中断。它响应过程如图所示的流程图。 TRAP 中断不能使处理器从停机(Halt) 模式下退出。 ● RESET 复位 复位中断是STM8 的软件和硬件中断的最高优先级,这也就是说在复位程序的开始所有的中断被禁止。必须通过RIM 指令来使能它们(见表)。 复位中断可以使处理器从停机(Halt) 模式退出。 更详细的复位中断管理见复位章节。 ● TLI最高等级的硬件中断 当在特定的 I/O 边沿检测到在相应的TLI输入时将产生硬件中断。 注意:&&& 在TLI中断服务子程序中禁止使用TRAP 指令。
可屏蔽的中断源 &&&&&& 对于可屏蔽中断,如果相应的中断被使能,而且如果在ITC_SPRx 寄存器的中断优先级比当前正在执行的中断(根据CC寄存器的I1 和I0 位)的优先级高的话那么就可以被响应。如果上面2个条件中& 的任何一个不满足那么该中断会被锁存并保持在等待状态。 ● 外部中断 外部中断可以用来把MCU从停机(Halt) 模式唤醒。外部中断触发方式的选择可以通过软件写控制外部中断控制寄存器(EXTI_CRx) 来实现。 &&&&&& 当多个连接到同一个中断向量的外部引脚中断被同时选定时候,那么他们是‘逻辑或’的关系。 &&&&&& 当外部的电平触发中断被锁存后,如果该给定的电平一直保持到中断子程序结束,那么该电平信号将再次触发中断,除非在中断子程序中禁用该中断。 ● 外设中断 大部分的外设中断会导致MCU从停机(Halt) 模式下唤醒。见表。 当对应外设状态寄存器的中断标志位被置位,同时相应的外设控制寄存器的使能位被置位时将产生一个外设中断。 清除一个外设中断的标准顺序是在对状态寄存器的访问后再对相关寄存器进行读或者写操作。当一个清除过程被执行之后相应的悬起中断(一个将被执行的中断)会丢失。
中断和低功耗模式 &&&&& &所有的中断都可以使处理器从待机模式(Wait) 退出。 &&&& &仅有外部中断和另外一些特定中断使才能使处理器从停机(Halt) 模式退出(请参考表16)。 &&&&&& 当MCU从挂起模式唤醒时候, 如果有多个排队中断存在,那么第一个被响应的中断一定具有从挂起模式退出的能力。该选择是通过如图18所示的判断过程实现的。如果最高优先级的待相应的中断不能把设备从挂起模式唤醒的话,那么它将在后续被响应。 &&&&&& 如果在执行HALT指令时,有一个内部或外部中断( 例如时钟中断)发生,HALT指令会继续执行完毕,但这个中断会立刻调用唤醒进程。 这种情况下MCU实际上是从停机(Halt) 模式被唤醒到运行模式,模式切换的延时为tWUH,详见数据手册。
活动等级/低功耗模式的控制 &&&&&&& MCU的活动等级的配置是通过编程CFG_GCR 寄存器的AL位来实现。( 见1.3全局配置寄存器(CFG_GCR) )。 &&&&&&& 该位是用来控制MCU的低功耗模式。在超低功耗的应用中,MCU大部分时间是运行在WFI/Halt模式中,仅在为执行特别任务的时候被唤醒( 通过中断) 。一些重复的任务可以直接在一个ISR( 中断服务子程序) 执行完成而不需要返回到主程序。为了处理这样情况,用户可以在进入低功耗模式( 通过执行WFI/HALT指令) 之前置位AL位,之后中断子程序返回之后就直接回到低功耗模式。由于相关寄存器保存只是在第一次中断会进行所以减少了中断服务程序运行的时间。 &&&&&&& 在一些非常简单的应用中所有的操作都可以只在ISR 中执行。对于一些更复杂的任务,中断子程序要判断是否要启动主程序,可以通过重设AL的简单方式来实现。 &&&&&&& 例如:一个应用需要通过自动唤醒功能来每隔50ms唤醒一次来检测一些引脚/ 传感器/ 按键的状态。如果这些引脚大部分时间是不工作的,那么MCU可以直接回到低功耗模式而不需要运行主程序的。如果其中之一的引脚处于工作状态,那么ISR 将要进行相应判断,通过重设AL位来启动主程序。
同时的和嵌套的中断管理 STM8S提供2种中断管理模式: ● 同时发生模式 ● 嵌套模式
&同时发生中断管理模式 &&&&&& 在该模式下,所有的中断的中断优先级都是3 级,因此它们都是不可以被中断的( 除了被TLI,RESET或TRAP 中断之外)。 &&&&&& 硬件的中断优先级按如下顺序排列,从低到高的优先级是:MAIN, IT4, IT3, IT2, IT1, IT0, TRAP/TLI( 同等优先级)以及RESET。 &&&&&& 图 所示是一个同时发生中断管理模式的例子
嵌套中断管理模式 &&&&&& 在该模式下,允许在中断子程序中响应中断。一旦一个中断的优先级被设置低于3 级时该模式就立即有效。 &&&&& &硬件优先级从低到高按如下顺序给定,即MAIN, IT4,IT3,IT2,IT1,IT0 和TRAP 。 &&&&&& 通过设定ITC_SPRx 寄存器的相应的I1_x 和I0_x 位来配置每一个中断向量的软件优先级。I1_x 和I0_x 位具有和CC寄存器的I1 和I0 位相同的意思(见表)。 &&&&&& 不可以将中断优先级设为级别0(I1_x=1, I0_x=0),在这种情况下,该中断的优先级将保持为先前的值。例如:如果先前的值是CFh ,然后编程的值是64h ,那么结果是44h 。 &&&&&& RESET 和 TRAP& 向量是没有软件优先级的。当两者的任何一个被响应时,CC寄存器的位I1 和I0 两位都被置位。 注意:
&&&&&& 在中断被响应时如果位 I1& 和 I0& 被修改,那么设备将作如下处理:& 如果一个中断 X 仍然处在悬起状态(新的中断或者中断标志没有被清除)同时该新的优先级又比先前的优先级高的话,那么该中断 X 会被重新响应。否则该中断的软件优先级在下一个中断请求( X中断的IRET之后)来之前保持不变。 &&&&& 在中断子程序的执行过程中,执行 HALT, POP CC, RIM , SIM& 和 WFI指令会改变当前的软件优先级直到下一条IRET 指令被执行或者先前提到的指令之一被执行。 。 图 所示嵌套中断管理的例子。&
1. ITC_SPRx& 寄存器对应于TLI的位可以被读写,但是它们对中断处理的管理是没有作用的。
&& 外部中断 STM8S为外部中断事件专门分配了五个中断向量: ● Port A 口的5个引脚:PA[6:2] ● Port B 口的8个引脚:PB[7:0] ● Port C 口的8个引脚:PC[7:0] ● Port D 口的7个引脚:PD[6:0] ● Port E 口的8个引脚:PE[7:0] PD7 是最高优先级的中断源 (TLI) 。 为了产生中断,相应的GPIO端口必须被配置为中断使能的输入口,详细内容请参考GPIO章节的寄存器描述部分。 中断的触发方式由外部中断控制寄存器1(EXTI_CR1) 和外部中断控制寄存器2(EXTI_CR2) 所配置
阅读(4206) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。STM8S的低功耗模式_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
STM8S的低功耗模式
&&STM8S的低功耗模式简介
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢 上传我的文档
 下载
 收藏
我是大二学生,就读酒店管理专业,在闲暇时间收集文档与大家共享交流。文档部分来自网络,部分绝对原创,仅供您参考学习,文档如有侵权,请及时告知,本人将尽快予以删除,谢谢。
 下载此文档
正在努力加载中...
stm8的功耗【管理】记
下载积分:5000
内容提示:stm8的功耗【管理】记
文档格式:PDF|
浏览次数:64|
上传日期: 02:21:54|
文档星级:
全文阅读已结束,如果下载本文需要使用
 5000 积分
下载此文档
该用户还上传了这些文档
stm8的功耗【管理】记
关注微信公众号

我要回帖

更多关于 stm32停机模式唤醒 的文章

 

随机推荐