5332|5

62

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM32(cortex_m3)的中断问题 [复制链接]

关于 STM32(cortex_m3)的中断问题。

我正在使用 STM32 Primer 编写 调试 一些小程序 (例如 LED 发光)。

不使用按键 中断, 是 容易 编写的。

现在 的问题是 不 理解 STM32 的整个中断机制。

在程序 是怎样设置的呢?(例如定时 中断,使 LED 一闪一亮的。)

为了产生中断, 要做哪一些设置? (例如 SystemTick 中断 ) 

是怎样跟 程序联系起来?(好象没有调用语句 SysTickHandler(),只做了定义,)

希望各位讨论一下。
 
有 范 例 程序吗?   我的邮箱 :lugf21@163.com. 谢谢。

我看了 Primer 本身 的 CIRCLE OS ,  设置了 中断向量,但不知怎样调用。  想   
此帖出自stm32/stm8论坛

最新回复

                                 关于中断,例如定义了:void SysTickHandler(void){   ...........}.怎样使 这个 函数成为 中断处理 程序 呢?怎样 设置 关联 对应 中断 向量 ?----打开stm32f10x_vector.c,在文件中定义了中断向量表:const intvec_elem __vector_table[],这个表和<stm32 Reference>第6.1.2节中断和异常 表27向量表 是一一对应的。也就是说在stm32f10x_vector.c中定义了所有中断和异常的入口地址,要使用某个函数成为某个中断程序,只要在对应的入口地址上加入对应函数地址就可以了。例如定义了一个System tick中断(不使用它原来的SysTickHandler()函数):void IT1(void){   .....}要使用IT1()成为中断函数,修改Sstm32f10x_vector.c如下:const intvec_elem __vector_table[] ={  .......  IT1,//SysTickHandler,    /*中断入口与处理程序对应*/  .....}   详情 回复 发表于 2007-11-22 15:46
点赞 关注
 

回复
举报

63

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

参考STM32的软件库中的例程

                                 如题
此帖出自stm32/stm8论坛
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

其中一个是Primer的例程,不用中断的, 而另外的那个是带OS

谢谢。
目前 想找一个 简单的 带中断 的可以允许 的 小程序修改。
关于中断,例如定义了:
void SysTickHandler(void)

  ...........
}
怎样使 这个 函数成为 中断处理 程序 呢?
怎样 设置 关联 对应 中断 向量 ?
当然 在之前 应该 打开中断 触发 源,假如触发中断了,
可以调用到这个 SysTickHandler( ) 吗?
此帖出自stm32/stm8论坛
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

4
 

参考STM32的软件库中的例程

请进入ST网站上的这一页:http://www.st.com/mcu/familiesdocs-110.html
在Firmware栏目下有“ARM-based 32-bit MCU STM32F101xx and STM32F103xx firmware library ”,请下载它的软件包和说明文件。

打开上面下载的软件包并放到你的系统中后,在STM32F10xFWLib的目录下请双击文件“stm32lib_contents.htm”,你就可以看到所有例子程序的列表和简单说明;有关嵌套矢量中断控制器(NVIC)的例子有以下这些:
Example1: Use of the Nested Vectored Interrupt Controller (NVIC) and priority mechanism (PreemptionPriority , SubPriority)
Example2: Use of the Nested Vectored Interrupt Controller (NVIC) and IRQ Channels configuration
Example3: Use of the Nested Vectored Interrupt Controller (NVIC) and system handlers
Example4: Use the NVIC firmware library to demonstrate the Cortex-M3 low power modes capabilities (WFE and WFI). 
Example5: Enter the system to WFI mode with DMA transfer enabled and wake-up from this mode by the DMA End of Transfer interrupt.
Example6: Use the NVIC firmware library to set the CortexM3 vector table in a specific address other than default.
This can be used to build program which will be loaded into Flash memory by an application previously programmed in the sector0 of the Flash memory. Such application can be In-Application Programming (IAP, through USART) or Device Firmware Upgrade (DFU, through USB).
 
你可以在研究完这些例子后,再参考这些例子进行讨论。
此帖出自stm32/stm8论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

5
 

好的,谢谢你, 浪大哥。


  我正在  下载、 学习 其中的 例程。

  初学,哈哈,就是觉得 中断 是最重要的, 所以要 深入理解。 

  学习中....

  谢谢。 
此帖出自stm32/stm8论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

6
 

RE:STM32(cortex_m3)的中断问题

关于中断,例如定义了:
void SysTickHandler(void)

  ...........
}
.怎样使 这个 函数成为 中断处理 程序 呢?怎样 设置 关联 对应 中断 向量 ?

----打开stm32f10x_vector.c,在文件中定义了中断向量表:
const intvec_elem __vector_table[],这个表和<stm32 Reference>第6.1.2节中断和异常 表27向量表 是一一对应的。也就是说在stm32f10x_vector.c中定义了所有中断和异常的入口地址,要使用某个函数成为某个中断程序,只要在对应的入口地址上加入对应函数地址就可以了。例如定义了一个System tick中断(不使用它原来的SysTickHandler()函数):
void IT1(void)
{
   .....
}
要使用IT1()成为中断函数,修改Sstm32f10x_vector.c如下:
const intvec_elem __vector_table[] =
{
  .......
  IT1,//SysTickHandler,    /*中断入口与处理程序对应*/
  .....
}
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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