OpenEdv-开源电子网

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

求助有没有外部中断5~9编程的示例程序

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2018-7-10
在线时间
0 小时
发表于 2018-7-10 18:49:43 | 显示全部楼层 |阅读模式
5金钱
外部中断5~9不知道该怎么编写,请求帮助,如果可以的话也讲解下外部中断10~15编写范例可以吗,新人对于外部中断不是很懂

最佳答案

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

void EXTI9_5_IRQHandler(void) { //pe9 = key2 if(EXTI_GetITStatus(EXTI_Line9) != RESET) { LED1=!LED1; EXTI_ClearITPendingBit(EXTI_Line9); //Çå3yLINE9éÏμÄÖD¶Ï±ê־λ printf("½øèëáËkey2μÄÖD¶Ï\r\n"); } //pe8 = key3 if(EXTI_GetITStatus(EXTI_Line8) != RESET) { LED1 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

23

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-1-25
在线时间
83 小时
发表于 2018-7-10 18:49:44 | 显示全部楼层
void EXTI9_5_IRQHandler(void)
{

        //pe9 = key2
        if(EXTI_GetITStatus(EXTI_Line9) != RESET)
        {       
                LED1=!LED1;
                EXTI_ClearITPendingBit(EXTI_Line9);  //Çå3yLINE9éÏμÄÖD¶Ï±ê־λ  
                printf("½øèëáËkey2μÄÖD¶Ï\r\n");               
               
        }
        //pe8 = key3
        if(EXTI_GetITStatus(EXTI_Line8) != RESET)
        {       
                LED1=!LED1;
                EXTI_ClearITPendingBit(EXTI_Line8);  //Çå3yLINE9éÏμÄÖD¶Ï±ê־λ
                printf("½øèëáËkey3μÄÖD¶Ï\r\n");
               
        }
        //pe7 =  key4
        if(EXTI_GetITStatus(EXTI_Line7) != RESET)
        {       
                LED1=!LED1;
                EXTI_ClearITPendingBit(EXTI_Line7);  //Çå3yLINE9éÏμÄÖD¶Ï±ê־λ
                printf("½øèëáËkey4μÄÖD¶Ï\r\n");               
        }
        //pe6 = rain_int
        if(EXTI_GetITStatus(EXTI_Line6) != RESET)
        {
                //ÕaàïμÄÂß¼-»1òaÎêìa

                LED1=!LED1;               
                delay_ms(20);
                EXTI_ClearITPendingBit(EXTI_Line6);
               
                rain_start_flag = 1;               
                have_rain_over =1;
                printf("óêá¿ÖD¶Ï\r\n");
                       
               
        }
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2018-7-10
在线时间
0 小时
 楼主| 发表于 2018-7-10 20:38:01 | 显示全部楼层
主要是按键外部中断,我按键装在PE6,PE7,各自产生一个中断响应
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2018-7-10
在线时间
0 小时
 楼主| 发表于 2018-7-10 20:38:17 | 显示全部楼层
不太懂求解答
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4524
金钱
4524
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-7-10 21:28:34 | 显示全部楼层
其它部分和0号到4号单独的中断的初始化没有什么两样,
只不过你要编一个中断服务程序void EXTI9_5_IRQHandler(void)
同时对你的这个PE6和PE7服务,
中断服务程序里要先判断是PE6还是PE7发生的中断,
然后调用不同的分支。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4524
金钱
4524
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-7-10 21:30:35 | 显示全部楼层
本帖最后由 warship 于 2018-7-10 21:34 编辑

中断服务程序大致如下:
//PE6、PE7键中断服务程序
void EXTI9_5_IRQHandler(void)
{
        Delay_ms(10);
        if(GET_PE6KEY())
        {
         KeyPE6Interrupted=1;         EXTI_ClearITPendingBit(EXTI_Line6);
        }
       if(GET_PE7KEY())
        {
         KeyPE7Interrupted=1;         EXTI_ClearITPendingBit(EXTI_Line7);
        }
}

我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-16 05:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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