用C++写的stm32中断程序无法运行

用C++写的stm32中断程序无法运行

昨天写了一个简单的stm32的中断程序,然而程序却始终无法正常运行.我设置的中断按键按下去后LED没有反应,然而用手去触碰那些没有设置的管脚时,却出现了中断现象.这让我很苦恼,我不得不重新看了一遍老师讲课的视频😭.然而看完了之后只让我进一步觉得自己的程序没有问题.我又找了一些中断程序对比,一点点修改,最后终于成功了.
在这个过程中,我发现用C++写的stm32中断程序无法运行,我一开始用的是VS2019+visual GDB,用的那个模板中源文件是C++的源文件,编译的程序下载后无法运行.我又用keil建了一个工程,把程序复制进去,发现当源文件是.cpp时都无法运行,改为.c时就可以运行了.在visual GDB里面也是这样.
我按用C++开发STM32程序STM32 用 C++ 开发两篇文章设置后也无法解决这个问题.望哪个大佬指点一下!

/*
@brief 一个简单的stm32中断程序,可以使LED打开或关闭
*/
#include <stm32f10x_gpio.h>
#include <stm32f10x_rcc.h>
#include <stm32f10x_exti.h>
#include <misc.h>
//#include "SysTick.h"
//#include <stm32f10x_it.h>

void Delay()
{
   
	int i;
	for (i = 0; i < 1000000; i++)
		asm(
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: STM32F9是一款高性能的微控制器,它具有完善的硬件支持,可以帮助我们编出一个简单的点灯程序。要一个点灯程序,首先需要熟悉STM32F9的外设,包括I/O口,定时器,中断和ADC等,以及它们之间的交互。然后,可以使用相关的语言,如C / C++,编程序逻辑,实现点灯的功能。 ### 回答2: 要使用STM32F9编一个点灯程序,我们需要遵循以下步骤: 1. 首先,我们需要在开发环境中配置STM32F9芯片。这包括设置时钟频率,配置GPIO引脚以控制LED灯以及选择合适的开发板和调试工具。 2. 然后,我们需要创建一个新的工程,并选定合适的编程语言和开发工具。一般来说,可以选择C语言以及常见的集成开发环境(IDE),如Keil MDK或STM32CubeIDE。 3. 创建一个主函数,该函数将是程序的入口点。在主函数中,我们需要初始化GPIO引脚以控制LED灯,并设置为输出模式。这样,我们就可以通过改变引脚的电平来控制LED的亮灭。 4. 在主函数中,使用一个循环结构,例如while循环,来反复执行点灯的操作。在循环内部,我们可以使用延时函数来控制LED的亮灭时间间隔,或者通过外部输入(如按键)来触发点灯操作。 5. 在循环中,通过改变GPIO引脚的电平(高或低)来控制LED的点亮和熄灭。我们可以使用一些简单的逻辑操作符(如逻辑与、逻辑或)来实现不同的点灯模式,如循环闪烁、交替闪烁等。 6. 最后,编译程序并将其下载到STM32F9芯片上运行。可以通过调试工具进行调试,观察LED灯的亮灭情况,精调程序以实现期望的点灯效果。 需要注意的是,以上仅为编一个简单的点灯程序的基本步骤,实际情况可能因开发环境、开发板和需求的不同而有所变化。在实际开发中,可能还需要处理中断、使用定时器等功能来实现更复杂的点灯模式。 ### 回答3: 使用STM32F9一个点灯程序相对简单。首先,我们需要设置好开发环境,包括安装STM32CubeMX和MDK-ARM开发工具,然后创建一个新的工程。接下来,我们需要选择使用哪个GPIO引脚来控制LED灯。 在STM32CubeMX中,我们可以配置GPIO引脚的模式和速度。我们需要将引脚设置为输出模式,并选择相应的速度。然后,我们可以生成初始化代码,用于配置系统时钟和引脚。 在初始化代码生成后,我们需要打开生成的文件,找到相关的函数,以便配置STM32F9和配置我们选择的GPIO引脚。确保将引脚配置为输出模式。 接下来,我们可以编主函数,用于控制LED灯的点亮和熄灭。我们可以使用库函数来设置引脚的电平,即将引脚设置为高电平或低电平。例如,如果我们想点亮LED灯,我们可以使用函数GPIO_SetPin,将所选的GPIO引脚设置为高电平。 然后,我们可以添加一个延时函数,用于控制LED灯的持续时间。我们可以使用库函数Delay进行延时。 最后,我们可以在代码中添加循环,使LED灯点亮和熄灭循环进行。这样,我们就完成了一个简单的点灯程序。 需要注意的是,具体的代码细节会略有不同,具体取决于使用的具体开发工具和配置。上述步骤仅为大致流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值