OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2948|回复: 10

学习中断中,但是不知道为什么写的中断程序不好使

[复制链接]

3

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2018-2-3
在线时间
13 小时
发表于 2018-3-17 15:21:10 | 显示全部楼层 |阅读模式
50金钱
本帖最后由 Dragons9527 于 2018-3-17 17:47 编辑

我搞了好半天,这个视频教程看了,又看那个,我这样写指南者可以用,但是改一下放到其他的板子上就不好使了,求解。

3月17.rar

293.51 KB, 下载次数: 29

程序代码

STM32.pdf

434.09 KB, 下载次数: 33

原理图

最佳答案

查看完整内容[请看2#楼]

我已经放弃了,这个论坛感觉没有人一样
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2018-2-3
在线时间
13 小时
 楼主| 发表于 2018-3-17 15:21:11 | 显示全部楼层
我已经放弃了,这个论坛感觉没有人一样
回复

使用道具 举报

3

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2018-2-3
在线时间
13 小时
 楼主| 发表于 2018-3-17 15:22:21 | 显示全部楼层
来人啊,大佬都在干嘛啊
回复

使用道具 举报

6

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
293
金钱
293
注册时间
2016-1-7
在线时间
54 小时
发表于 2018-3-17 16:07:17 | 显示全部楼层
你贴出来还好一点,要下载你代码来看,一般不愿意看
回复

使用道具 举报

3

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2018-2-3
在线时间
13 小时
 楼主| 发表于 2018-3-17 16:56:30 | 显示全部楼层
本帖最后由 Dragons9527 于 2018-3-17 16:57 编辑
落尘浅羽 发表于 2018-3-17 16:07
你贴出来还好一点,要下载你代码来看,一般不愿意看

#include        "exti.h"

static        void        EXTI_NVIC_Config(void)
{
        NVIC_InitTypeDef        NVIC_InitStruct;
        //配置优先级组
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
        
        NVIC_InitStruct.NVIC_IRQChannel                                                                                =                EXTI0_IRQn;
        NVIC_InitStruct.NVIC_IRQChannelCmd                                                                =                ENABLE;
        NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority        =                1;
        NVIC_InitStruct.NVIC_IRQChannelSubPriority                                =                1;
        NVIC_Init(&NVIC_InitStruct);
}        



void        EXIT1_KEY_Config(void)
{
        GPIO_InitTypeDef        GPIO_InitStruct;
        EXTI_InitTypeDef        EXTI_InitStruct;        
        //配置中断优先级
        EXTI_NVIC_Config();
        //初始化GPIO
        RCC_APB2PeriphClockCmd(KEY_EXTI_CLK,ENABLE);
        GPIO_InitStruct.GPIO_Pin                =                KEY_EXTI_PIN;
        GPIO_InitStruct.GPIO_Mode                =                GPIO_Mode_IN_FLOATING;
        GPIO_Init(KEY_EXTI_PROT,&GPIO_InitStruct);

        //初始化EXTI
        GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource0);
        //配置AFIO
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
        EXTI_InitStruct.EXTI_Line                =                EXTI_Line0;
        EXTI_InitStruct.EXTI_Mode                =                EXTI_Mode_Interrupt;
        EXTI_InitStruct.EXTI_Trigger=                EXTI_Trigger_Falling;
        EXTI_InitStruct.EXTI_LineCmd=                ENABLE;
        EXTI_Init(&EXTI_InitStruct);        
}




#ifndef        __EXTI_H
#define        __EXTI_H

#include        "stm32f10x.h"

#define        KEY_EXTI_PROT                                        GPIOC
#define        KEY_EXTI_PIN                                        GPIO_Pin_0
#define        KEY_EXTI_CLK                                        RCC_APB2Periph_GPIOC



#define KEY_ON        1
#define KEY_OFF        0

static        void        EXTI_NVIC_Cnfig(void);
void        EXIT1_KEY_Config(void);


#endif




void        EXTI0_IRQHandler(void)
{
        if(EXTI_GetITStatus(EXTI_Line0)        !=RESET)
        {
                BEEP_TOGGLE;
        }
        EXTI_ClearITPendingBit(EXTI_Line0);

}


#include        "stm32f10x.h"
#include        "exti.h"
#include        "led.h"
#include        "beep.h"
#include        "delay.h"
int        main(void)
{
        LED_GPIO_Confing();
        EXIT1_KEY_Config();
        BEEP_GPIO_Init();
        while(1)
        {

        }
}








#include        "led.h"
#include        "delay.h"


void        LED_GPIO_Confing(void)
{
        GPIO_InitTypeDef        GPIO_InitStruct;
        
        RCC_APB2PeriphClockCmd(LED_GPIO_CLK, ENABLE);
        GPIO_InitStruct.GPIO_Pin        =        LED1_GPIO_PIN;
        GPIO_InitStruct.GPIO_Mode        =        GPIO_Mode_Out_PP;        
        GPIO_InitStruct.GPIO_Speed=        GPIO_Speed_50MHz;        
        
        GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);
        
        PEout(0)=0;
}







#ifndef        _led_h
#define        _led_h


#include        "stm32f10x.h"


#define        LED1_GPIO_PIN                                                        GPIO_Pin_0
#define        LED2_GPIO_PIN                                                        GPIO_Pin_1
#define        LED3_GPIO_PIN                                                        GPIO_Pin_2
#define        LED_GPIO_PORT                                                        GPIOE
#define        LED_GPIO_CLK                                                        RCC_APB2Periph_GPIOE


#define        LED1_TOGGLE                                                                        {LED_GPIO_PORT->ODR        ^=LED1_GPIO_PIN;}


void        LED_GPIO_Confing(void);


#endif





这是代码





回复

使用道具 举报

13

主题

116

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
372
金钱
372
注册时间
2018-1-22
在线时间
118 小时
发表于 2018-3-17 21:34:47 | 显示全部楼层
是一模一样的板子?
回复

使用道具 举报

3

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2018-2-3
在线时间
13 小时
 楼主| 发表于 2018-3-19 11:28:58 | 显示全部楼层
lvb 发表于 2018-3-17 21:34
是一模一样的板子?

板子不一样,我就是改了程序的
回复

使用道具 举报

13

主题

116

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
372
金钱
372
注册时间
2018-1-22
在线时间
118 小时
发表于 2018-3-19 12:46:34 | 显示全部楼层
Dragons9527 发表于 2018-3-19 11:28
板子不一样,我就是改了程序的

那就是还有细节没改对   
回复

使用道具 举报

3

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2018-2-3
在线时间
13 小时
 楼主| 发表于 2018-3-19 17:17:17 | 显示全部楼层
lvb 发表于 2018-3-19 12:46
那就是还有细节没改对

你这不是废话吗,就是不知道哪里有问题才问的啊,大哥,不要水些没营养的
回复

使用道具 举报

13

主题

116

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
372
金钱
372
注册时间
2018-1-22
在线时间
118 小时
发表于 2018-3-19 19:53:30 | 显示全部楼层
Dragons9527 发表于 2018-3-19 17:17
你这不是废话吗,就是不知道哪里有问题才问的啊,大哥,不要水些没营养的

一块板可以用,一块板不能用,两块板不一样,很明显就是另一块硬件接口跟程序对不上的问题,你贴个代码我还能猜到你程序跟哪个接口对不上??你教教我咯
回复

使用道具 举报

2

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2018-3-3
在线时间
7 小时
发表于 2018-3-19 23:34:05 | 显示全部楼层
应该是硬件细节问题。仔细检查你的IO的位置,以及触发电平是不是设置正确。还有自己做板子注意虚焊短路问题,你可以拿万用表调调看先。
最轻量的实用RTOS
https://github.com/EDI-Systems/M5P1_MuProkaron
本人QQ 644580703
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 00:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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