标题: 利用STM32外部中断和霍尔传感器写的电机测速程序 求帮助 [打印本页]

作者: zichenjushi    时间: 2019-7-19 09:22
标题: 利用STM32外部中断和霍尔传感器写的电机测速程序 求帮助
这是我最近写的利用32外部中断和霍尔传感器写的电机测速源程序,程序运行错误 求帮助
  1. #include "exti.h"
  2. #include "stm32f10x.h"
  3. #include "delay.h"
  4. #include "led.h"
  5. #include "sys.h"

  6. u16 k1 = 0;
  7. u8 k2 = 0;

  8. void EXTIX_Init(void)
  9. {
  10.         GPIO_InitTypeDef GPIO_InitStructure;
  11.         EXTI_InitTypeDef EXTI_InitStructure;
  12.         NVIC_InitTypeDef NVIC_InitStructure;
  13.         
  14.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                                //初始化IO口
  15.         GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_2 | GPIO_Pin_1;
  16.         GPIO_Init(GPIOF,&GPIO_InitStructure);               
  17.         
  18.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOF, ENABLE);                //开启IO口复用时钟
  19.         
  20.         GPIO_EXTILineConfig(GPIO_PortSourceGPIOF,GPIO_PinSource2);        //        GPIOB2 映射到 中断线2
  21.         GPIO_EXTILineConfig(GPIO_PortSourceGPIOF,GPIO_PinSource1);        //        GPIOB1 映射到 中断线1
  22.         
  23.         EXTI_InitStructure.EXTI_Line    = EXTI_Line2;                                //中断线2
  24.         EXTI_InitStructure.EXTI_LineCmd = ENABLE;                                        //外部中断使能
  25.         EXTI_InitStructure.EXTI_Mode    = EXTI_Mode_Interrupt;                //模式中断
  26.         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;                //下降沿
  27.         EXTI_Init(&EXTI_InitStructure);                                                                //设定参数初始化 外部中断
  28.         
  29.         EXTI_InitStructure.EXTI_Line    = EXTI_Line1;                                //中断线1
  30.         EXTI_InitStructure.EXTI_LineCmd = ENABLE;                                        //外部中断使能
  31.         EXTI_InitStructure.EXTI_Mode    = EXTI_Mode_Interrupt;                //模式中断
  32.         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;                //下降沿
  33.         EXTI_Init(&EXTI_InitStructure);                                                                //设定参数初始化 外部中断
  34.         
  35.         
  36.         NVIC_InitStructure.NVIC_IRQChannel                                                 = EXTI2_IRQn;                        //通道 外部中断2
  37.         NVIC_InitStructure.NVIC_IRQChannelCmd                                         = ENABLE;                                //使能
  38.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority         = 2;                                        //抢占优先级
  39.         NVIC_InitStructure.NVIC_IRQChannelSubPriority                         = 1;                                        //响应优先级
  40.         NVIC_Init(&NVIC_InitStructure);
  41.         
  42.         NVIC_InitStructure.NVIC_IRQChannel                                                 = EXTI1_IRQn;                        //通道 外部中断1
  43.         NVIC_InitStructure.NVIC_IRQChannelCmd                                         = ENABLE;                                //使能
  44.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority         = 2;                                        //抢占优先级
  45.         NVIC_InitStructure.NVIC_IRQChannelSubPriority                         = 2;                                        //响应优先级
  46.         NVIC_Init(&NVIC_InitStructure);
  47.         
  48. }

  49. void EXTI2_IRQHandler(void)                                                //外部中断服务函数
  50. {
  51. //        k2++;
  52. //        if(k2 >= 13)
  53. //        {
  54. //                k2 = 0;
  55.                 k1++;
  56. //        }
  57.         
  58.         
  59.         EXTI_ClearITPendingBit(EXTI_Line2);                        //清除中断标志位
  60. }

  61. void EXTI1_IRQHandler(void)                                                //外部中断服务函数
  62. {
  63.         k1 = 0;
  64.         
  65.         EXTI_ClearITPendingBit(EXTI_Line1);                        //清除中断标志位
  66. }


复制代码
全部资料51hei下载地址:(管理提醒:多人回帖说代码有问题,大家不要下载)
外部中断(电机测速).7z (182.49 KB, 下载次数: 125)


作者: 堂堂    时间: 2019-7-26 11:37
测不了数据,都是0
作者: xiaozhong1314    时间: 2019-7-28 16:43
测不了数据啊,
作者: 迁就    时间: 2019-8-1 11:08
谢谢分享
作者: 1106064505    时间: 2019-8-1 15:15
代码可能有问题
作者: 注册过了    时间: 2020-3-4 19:22
打开一看你会发现、这只是一个中断计数
作者: masker486    时间: 2020-11-12 22:25
这个代码逗我玩呢,没有霍尔模块




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1