历史上的今天
今天是:2024年10月19日(星期六)
2021年10月19日 | STM8的中断向量
2021-10-19 来源:eefocus
在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之STVD的使用
史海拾趣
|
struct FindWellKnownSymbolCallbackInfo { char *name; UINT16 group; }; static BOOL findWellKnownSymbolCB(char *name, &nb ...… 查看全部问答> |
|
1,2个单片机全双工通信一定要握手协议吗?我可不可以这样:用主机的定时器定一个较长的时间,时间到了后先往SBUF里赋值发送数据,然后等待接收从机给主机发送的数据;而从机也按照这样的方法,从而使这2个单片机完成不需要握手协议也可以进行全双 ...… 查看全部问答> |
|
第一次在LINUX平台下编译成功的AVR程序,并通过AVR Dragon下载到芯片中,有点兴奋所以与大家分享一下,希望能对和我一样在linux平台的初学者能提供点帮助。 经常从eeworld获取知识和资料,也有点不好意思,呵呵。… 查看全部问答> |
|
业内人士都知道,LED日光灯将成为新一代节能环保照明灯,但是现在全国每年顶多生产几十万支LED日光灯,而且大部分是出口,国内使用寥寥无几,其实最主要的问题是价格问题,一个普通的节能荧光灯光十几元钱就搞定了,而一根LED日光灯管得上百块。所 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 09:07 编辑 高频应该准备哪些中周型号 1. 中周是中频变压器,俗称中周,是超外差式无线电接收机中特有的一种具有固定谐振回路的变压器,但谐振回路可在一定范围内微调,以使接入电路后能达到稳定的谐振频率( ...… 查看全部问答> |
|
各位老大,现在我正在用DXP 2004,可单位的计算机都上win7了,DXP 只能在XP下运行,现在可真麻烦,到哪里去找最新的Altium Designer 下载,能够在win7下运行? … 查看全部问答> |
|
发送端: void main(void) { unsigned char TxBuf[20]={0}; init_NRF24L01() ; TxBuf[1] = 0xff ; while(1) { nRF24L01_TxPacket(TxBuf); // Transmit Tx buffer data Delay(6000); } &nbs ...… 查看全部问答> |




