這是我最近寫的利用32外部中斷和霍爾傳感器寫的電機測速源程序,程序運行錯誤 求幫助
- #include "exti.h"
- #include "stm32f10x.h"
- #include "delay.h"
- #include "led.h"
- #include "sys.h"
- u16 k1 = 0;
- u8 k2 = 0;
- void EXTIX_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- EXTI_InitTypeDef EXTI_InitStructure;
- NVIC_InitTypeDef NVIC_InitStructure;
-
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //初始化IO口
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_1;
- GPIO_Init(GPIOF,&GPIO_InitStructure);
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOF, ENABLE); //開啟IO口復(fù)用時鐘
-
- GPIO_EXTILineConfig(GPIO_PortSourceGPIOF,GPIO_PinSource2); // GPIOB2 映射到 中斷線2
- GPIO_EXTILineConfig(GPIO_PortSourceGPIOF,GPIO_PinSource1); // GPIOB1 映射到 中斷線1
-
- EXTI_InitStructure.EXTI_Line = EXTI_Line2; //中斷線2
- EXTI_InitStructure.EXTI_LineCmd = ENABLE; //外部中斷使能
- EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //模式中斷
- EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿
- EXTI_Init(&EXTI_InitStructure); //設(shè)定參數(shù)初始化 外部中斷
-
- EXTI_InitStructure.EXTI_Line = EXTI_Line1; //中斷線1
- EXTI_InitStructure.EXTI_LineCmd = ENABLE; //外部中斷使能
- EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //模式中斷
- EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿
- EXTI_Init(&EXTI_InitStructure); //設(shè)定參數(shù)初始化 外部中斷
-
-
- NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn; //通道 外部中斷2
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //搶占優(yōu)先級
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //響應(yīng)優(yōu)先級
- NVIC_Init(&NVIC_InitStructure);
-
- NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn; //通道 外部中斷1
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //搶占優(yōu)先級
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; //響應(yīng)優(yōu)先級
- NVIC_Init(&NVIC_InitStructure);
-
- }
- void EXTI2_IRQHandler(void) //外部中斷服務(wù)函數(shù)
- {
- // k2++;
- // if(k2 >= 13)
- // {
- // k2 = 0;
- k1++;
- // }
-
-
- EXTI_ClearITPendingBit(EXTI_Line2); //清除中斷標志位
- }
- void EXTI1_IRQHandler(void) //外部中斷服務(wù)函數(shù)
- {
- k1 = 0;
-
- EXTI_ClearITPendingBit(EXTI_Line1); //清除中斷標志位
- }
復(fù)制代碼 全部資料51hei下載地址:(管理提醒:多人回帖說代碼有問題,大家不要下載)
外部中斷(電機測速).7z
(182.49 KB, 下載次數(shù): 125)
2019-7-19 17:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|