在stm8_interrupt_vector.c文件中,我们可以看到除去Reset向量外其它中断向量的入口均是统一使用void NonHandledInterrupt (void)函数。对于正常的使用我们还是需要重新跟改中断函数入库函数名称。
对于中断函数的入口修改:
1、struct interrupt_vector const _vectab[] 指明的中断向量表,每一个类似{0x82, NonHandledInterrupt},偏移量的申明表示的都是一个中断矢量对于的中断函数名称。
2、 中断函数的申明 @far @interrupt void NonHandledInterrupt (void)
例当需要使用I2C中断的时候,可以这样做:
1、申明I2C中断函数名称:
在struct interrupt_vector const _vectab[]中找到I2C中断函数入口,加入I2C中断函数名称
{0x82, I2C_Server_Interrupt },
2、在stm8_interrupt_vector.c文件中添加服务函数:
@far @interrupt void I2C_Server_Interrupt (void)
{
~~~~~加入中断服务代码~~~~~~
return;
}
3、最好在文件头上方申明外部可调用:extern void I2C_Server_Interrupt (void)
4、或者仅是申明函数,再定义STM8_IT.c、STM8_IT.h文件,将中断服务程序全部放置其中。
工程建立好以后,可以通过菜单栏“Project”->“Settings”来修改项目配置
关键字:STM8 中断向量
引用地址:
STM8的中断向量
推荐阅读最新更新时间:2024-11-02 21:16
STM8 设置系统时钟
硬件平台:stm8s103 编译环境:IAR for stm8 #include iostm8s103f3.h #include intrinsics.h // // 设置系统时钟使用内部振荡器为16MHz运行。 // void InitialiseSystemClock() { CLK_ICKR = 0; // 复位内部时钟寄存器 CLK_ICKR_HSIEN = 1; // 使能 HSI CLK_ECKR = 0; // 禁用外部时钟 while (CLK_ICKR_HSIRDY == 0); // 等待HSI准备好 CLK_CK
[单片机]
STM8看门狗(1)
STM8L最大看门狗定时时长: Prescaler divider:256 R:255 T=256*(255+1)/38 000=1.724631578947368s STM8L最小看门狗定时时长: Prescaler divider:4 R:0 T=4*(0+1)/38 000=0.1052631578947368ms
[单片机]
STVD+STM8官方固件库创建工程模板
本文借鉴了在KEIL、IAR、以及一些IDE创建工程模板的经验尝试得出。如有偏驳,欢迎将Email给我,我将及时修改,如有版权问题,请管理及时联系我删帖,维护版权。 1、安装STVD(IDE)+ COSMIC(编译器),本文省略 需注意,需要留意COSMIC的安装路径,以免系统无法自动识别时,可手动配置。 2、下载STM8S的固件库 可于意法半导体官网下载STM8S的固件库,也可位于STM论坛(百度可以搜到),个人建议去STM论坛,本文用的是STM8S_StdPeriph_Lib_V2.1.0,下载完后解压备用。 3、新建存放模板的路径(文件夹)并将固件库放进相对指定文件夹 a、需要新建存放文件的路径的文件夹。例如,整
[单片机]
STM8的定时唤醒单元的使用
STM8L的“RTC periodic wakeup unit”可以通过寄存器RTC_CR1的WUCKSEL bits来配置不同的唤醒周期。具体的有以下的三种模式: 1.1,WUCKSEL = 0xxb for short wakeup periods 1.2 WUCKSEL = 10xb for medium wakeup periods 1.3 WUCKSEL = 11xb for long wakeup periods 其中short wakeup periods时钟的分频是如下流程: 则的周期唤醒在不同时钟源频率下的clk为: 最小的唤醒周期为(0x0001+1)*0.125us
[单片机]
STM8与汇编语言(6)--8位定时器应用之一
STM8单片机中的外设资源是比较丰富的,定时器有8位的也有16位的,下面的实验程序,就是利用8位定时器4来进行延时,然后驱动LED闪烁。 同样还是利用ST的开发工具,生成一个汇编程序的框架,然后修改其中的main.asm,修改后的代码如下。 编译通过后,下载到开发板,运行程序,可以看到LED在闪烁,或者用示波器可以在LED引脚上看到方波。 在这里要特别提醒的是,从ST给的手册上看,这个定时器中的计数器是一个加1计数器,但本人在实验过程中感觉不太对,经过反复的实验,我认为应该是一个减1计数器(也许是我拿的手册不对,或许是理解上有误)。例如,当给定时器中的自动装载寄存器装入255时,产生的方波频率最小,就象下面代码中计算的
[单片机]
STM8S自学笔记-001 STM8简介
概述 STM8单片机的开发商是意法半导体(ST),于2009年推出。它具有3级流水线架构、性价比高、开发方便的等优点。根据应用场合的不同,分为三个系列:STM8S,STM8L和STM8A。 个人认为,STM8S的开发非常类似于STM32F,因而学好STM8S单片机非常有助于学习STM32。所以,先从STM8S入手,一点一点拨开它的“心”。 ST单片机的开发有两种方法:用库函数和用寄存器。 寄存器开发是最底层的,类似于51,优点是速度快,代码简洁,但难以阅读和理解。库函数是ST官方将某一功能所需的寄存器整合到一起后,提供给开发人员可直接使用的(含参)函数,而且库函数开发的阅读性非常好。所以,后面的程序实例以库函数
[单片机]
从ST官网下载STM8/32的官方例程
01、进入ST官网 参考网址: https://www.st.com 02、参考下图 03、参考下图 04、参考下图 05、参考下图 06、参考下图 07、参考下图 08、参考下图 09、参考下图 10、参考下图 11、参考下图 12、参考下图 13、参考下图 14、参考下图 15、参考下图 - 登录成功,会弹出下载界面
[单片机]
STM8——IAR使用STLINK V2烧写程序
使用IAR编译环境烧写STM8程序,使用方法如下: STLINK V2硬件:STLINK V2 STLINK V2驱动:见云盘文件(链接:http://pan.baidu.com/s/1hr7CwUK 密码:w2vr) IAR编译环境烧写TM8程序过程:见云盘文档(链接:http://pan.baidu.com/s/1hr7CwUK 密码:w2vr)
[单片机]