STM8的中断向量

发布者:快乐球球最新更新时间:2021-10-19 来源: eefocus关键字:STM8  中断向量 手机看文章 扫描二维码
随时随地手机看文章

在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的中断向量

上一篇:STM8之STVD的使用
下一篇:STM8S时钟校准笔记二——通过AWU校准HSI

推荐阅读最新更新时间: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
[单片机]
<font color='red'>STM8</font>看门狗(1)
STVD+STM8官方固件库创建工程模板
本文借鉴了在KEIL、IAR、以及一些IDE创建工程模板的经验尝试得出。如有偏驳,欢迎将Email给我,我将及时修改,如有版权问题,请管理及时联系我删帖,维护版权。 1、安装STVD(IDE)+ COSMIC(编译器),本文省略 需注意,需要留意COSMIC的安装路径,以免系统无法自动识别时,可手动配置。 2、下载STM8S的固件库 可于意法半导体官网下载STM8S的固件库,也可位于STM论坛(百度可以搜到),个人建议去STM论坛,本文用的是STM8S_StdPeriph_Lib_V2.1.0,下载完后解压备用。 3、新建存放模板的路径(文件夹)并将固件库放进相对指定文件夹 a、需要新建存放文件的路径的文件夹。例如,整
[单片机]
STVD+STM8官方固件库创建工程模板
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
[单片机]
<font color='red'>STM8</font>的定时唤醒单元的使用
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、参考下图 - 登录成功,会弹出下载界面
[单片机]
从ST官网下载<font color='red'>STM8</font>/32的官方例程
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)
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved