STM32学习笔记_中断

关于启动文件startup_stm32f10x_hd.s 

是一个启动文件,用汇编语言写的基本程序。汇编指令是 Cortex-M3 内核支持的指令,参考《Cortex-M3指南》内指令集章节。

版本:startup_stm32f10x_md.s,startup_stm32f10x_cl.s,startup_stm32f10x_hd.s。芯片型号以及不同编译环境选择使用。

作用:当STM32 芯片上电启动的时候,先执行这里的汇编程序,建立起来C 语言的运行环境,所以称为启动文件。

来源和使用:该文件在KEIL安装目录中,也可以从ST库里面找到,添加到工程里面即可。

该程序启动过程主要功能如下:

  • 初始化堆栈指针 SP
  • 初始化程序计数器指针 PC
  • 设置堆、栈的大小
  • 设置中断向量表的入口地址
  • 配置外部 SRAM 作为数据存储器
  • 调用 SystemInit() 函数配置 STM32 的系统时钟
  • 设置 C 库的分支入口 "__main” (最终用来调用 main 函数)

通过一个实例了解启动文件和中断服务程序的关系:

说明:用外部中断方式检测按键

1、在里stm32f10x_it.c添加一段代码,可称为中断服务函数,或中断处理函数。
void EXTI15_10_IRQHandler(void)  // 外部中断,对应于启动文件的“EXPORT  EXTI15_10_IRQHandler       [WEAK]”
    {
        if(EXTI_GetITStatus(EXTI_Line15) != RESET)    //检测是否触发对应的中断
    {
        delay_ms(10);
        LED0 = !LED0;//按键触发,灯的状态翻转
    }
    EXTI_ClearITPendingBit(EXTI_Line15);//清除中断标志

}

2、 Key.c文件

void Key_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    EXTI_InitTypeDef EXTI_InitStructure;
    NVIC_InitTypeDef NVIC_InitStructure;
    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);    //GPIOA时钟使能
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);    //复用功能时钟打

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大叔山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值