野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 704|回复: 4

STM32中断发生问题

[复制链接]
发表于 2023-8-12 20:52:02 | 显示全部楼层 |阅读模式

我用指针初始化中断它运行总卡在中断初始化这里,改了一下用取址初始化成功了,应该没有问题,这两个我感觉是相同的定义,但是却出现问题了,这是为什么呀?

错误代码


  1.     EXTI_InitTypeDef * Exti_Init;
  2.     Exti_Init->EXTI_Line = EXTI_Line0 ;
  3.        Exti_Init->EXTI_LineCmd = ENABLE;
  4.     Exti_Init->EXTI_Mode = EXTI_Mode_Interrupt;
  5.     Exti_Init->EXTI_Trigger = EXTI_Trigger_Rising ;               //初始化EXTI
  6.    
  7.     EXTI_Init( Exti_Init);
复制代码

修改后可以运行的代码



  1.     EXTI_InitTypeDef Exti_Init;
  2.     Exti_Init.EXTI_Line = EXTI_Line0 ;  
  3.     Exti_Init.EXTI_LineCmd = ENABLE;  
  4.     Exti_Init.EXTI_Mode = EXTI_Mode_Interrupt;  
  5.     Exti_Init.EXTI_Trigger = EXTI_Trigger_Rising;
  6.      EXTI_Init(&Exti_Init);
复制代码


回复

使用道具 举报

发表于 2023-8-14 08:51:59 | 显示全部楼层
你声明了一个指向 EXTI_InitTypeDef 结构体的指针 Exti_Init,但你没有为它分配内存,也没有将其指向已分配的内存,访问 Exti_Init 的成员时,会导致未定义行为,可能会出现异常。
回复 支持 反对

使用道具 举报

发表于 2023-8-14 08:57:48 | 显示全部楼层
第一段的指针变量Exti_Init需要分配内存空间才能使用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-15 20:47:43 | 显示全部楼层
菠萝片 发表于 2023-8-14 08:51
你声明了一个指向 EXTI_InitTypeDef 结构体的指针 Exti_Init,但你没有为它分配内存,也没有将其指向已分配 ...

明白了,感谢感谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-15 20:48:04 | 显示全部楼层
废话师 发表于 2023-8-14 08:57
**** 作者被禁止或删除 内容自动屏蔽 ****

明白了,感谢感谢
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-27 19:45 , Processed in 0.030398 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表