OpenEdv-开源电子网

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

STM32F103RB EXTI 中断A口可用 之外BCD口无法使用

[复制链接]

5

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
271
金钱
271
注册时间
2016-3-23
在线时间
49 小时
发表于 2016-3-26 22:29:35 | 显示全部楼层 |阅读模式
1金钱
各位,工程中只配置EXTI,EXTI 为A口时可以使用,将A全部换为B口,却无法使用,查了许久发现还是只能用B口,麻烦各位,不知该改何处,多谢。
代码为

# include "stm32f10x.h"
# include "stm32f10x_crc.h"
# include "stm32f10x_exti.h"
# include "stm32f10x_flash.h"
# include "stm32f10x_gpio.h"
# include "stm32f10x_misc.h"
# include "stm32f10x_can.h"
# include "stm32f10x_tim.h"
# include "Delay_Init.h"


# define  RED_1    GPIO_SetBits(GPIOB,GPIO_Pin_9 )
# define  RED_0    GPIO_ResetBits(GPIOB,GPIO_Pin_9 )

# define  BLUE_1    GPIO_SetBits(GPIOB,GPIO_Pin_8 )
# define  BLUE_0    GPIO_ResetBits(GPIOB,GPIO_Pin_8 )

void LED_Init()
{
         GPIO_InitTypeDef GPIO_InitStructure;
         EXTI_InitTypeDef EXTI_InitStructure;
         NVIC_InitTypeDef NVIC_InitStructure;
         //  LED配置
         //RED
         RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE); // 使能PD端口时钟  
         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 ;       
         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      
         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
         GPIO_Init(GPIOB, &GPIO_InitStructure);  //初始化PD端口
         //BLUE         
         RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE); // 使能PG端口时钟  
         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;       
         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      
         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
         GPIO_Init(GPIOB, &GPIO_InitStructure);  //初始化PG端口
       

        // EXTI 配置                                                
         RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); // 使能PA端口时钟  
         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ;       
         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;      
         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
         GPIO_Init(GPIOA, &GPIO_InitStructure);  //初始化PA端口
         

         // 外部事件中断    Lin0
         GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);
         EXTI_DeInit();                                                                          //配置缺省
         EXTI_InitStructure.EXTI_Line = EXTI_Line0;
         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
         EXTI_InitStructure.EXTI_LineCmd = ENABLE;
         EXTI_Init(&EXTI_InitStructure);                                      
         EXTI_ClearITPendingBit(EXTI_Line0);             //清除中断线路
       
         // Configure the Priority Grouping with 0 bit //
         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);                                      //主从优先级
         // Enable TIM3 global interrupt with Preemption Priority 1 and SubPriority as 0 //
         NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;                      //主优先级  
         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;                                //从优先级
         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
         NVIC_Init(&NVIC_InitStructure);
}

void EXTI0_IRQHandler(void)                            //中断处程序
{
  if(EXTI_GetITStatus(EXTI_Line0) != RESET)
  {
                BLUE_0;
                RED_0;
                delay_ms(3000);
                // Clear the EXTI line 9 pending bit
                EXTI_ClearITPendingBit(EXTI_Line0);
  }
}

int main(void)
{   
         SystemInit( );        // 配置系统时钟为72M        
         Delay_init( );
         LED_Init( );
       
        while (1)
       {
           BLUE_1;
           RED_1;                
      }
}




最佳答案

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

多谢各位,已解决
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
271
金钱
271
注册时间
2016-3-23
在线时间
49 小时
 楼主| 发表于 2016-3-26 22:29:36 | 显示全部楼层
回复

使用道具 举报

5

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
271
金钱
271
注册时间
2016-3-23
在线时间
49 小时
 楼主| 发表于 2016-3-26 22:30:58 | 显示全部楼层
不好意思,检查了一会还是有误,应该是A口一直可用,其它还是无法使用,麻烦各位了。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-3-29 22:16:24 | 显示全部楼层
外围电路是否有影响,直接测量下对应IO的电平,看看对不对.
回复

使用道具 举报

5

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
271
金钱
271
注册时间
2016-3-23
在线时间
49 小时
 楼主| 发表于 2016-4-1 12:10:24 | 显示全部楼层
原子哥,只在最小系统上进行测试,没有外围电路
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-24 16:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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