OpenEdv-开源电子网

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

滴答定时器为啥进不去它的中断

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2017-12-21
在线时间
4 小时
发表于 2017-12-22 20:23:42 | 显示全部楼层 |阅读模式
5金钱
       改变IO口的状态
if((x>3400 && x<3650) && (y>3700&&y<4000))
        {
                GPIO_SetBits(GPIOA,GPIO_Pin_3);
//                printf("%d\r\n",0);
        }               
        if((x>3650 && x<4000) && (y>3400&&y<3600))
        {
                GPIO_SetBits(GPIOA,GPIO_Pin_4);
//                                                printf("%d\r\n",1);
        }        



滴答定时器
#include <includes.h>
#include "systick.h"
#include "stm32f10x.h"
void SysTick_Init(void)
{

      if (SysTick_Config(SystemFrequency / 100000))        // ST3.0.0???
        if (SysTick_Config(SystemCoreClock / 100000))        // ST3.5.0???
        {
           while (1);

        }

        SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;
}
中断
void EXTI3_IRQHandler(void)
{
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3))   {     timenow = 0;     SysTick->CTRL |=  SysTick_CTRL_ENABLE_Msk;//   printf("%d\r\n",1);     }    if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3))    {  printf("%d\r\n",9);     timeCh2 = timenow;      printf("%d\r\n",timeCh2)        ;             }
EXTI_ClearITPendingBit(EXTI_Line3);
}               


void SysTick_Handler(void)
{
        timenow++;
        printf("2");        
}


为什么它可以输出就但是timeCH2一直是0,并且2没有输出,它是不是没进滴答定时器的中断,为什么进不去呢

最佳答案

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

参考我们UCOSII的例程,改个宏定义,就可以了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-12-22 20:23:43 | 显示全部楼层
参考我们UCOSII的例程,改个宏定义,就可以了
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2017-12-21
在线时间
4 小时
 楼主| 发表于 2017-12-23 09:26:39 | 显示全部楼层
那个宏定义?
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2017-12-21
在线时间
4 小时
 楼主| 发表于 2017-12-23 20:29:35 | 显示全部楼层
(1)    将RCC寄存器重新设置为默认值:RCC_DeInit;

(2)    打开外部高速时钟晶振HSE:  RCC_HSEConfig(RCC_HSE_ON);

(3)    等待外部高速时钟晶振工作:  HSEStartUpStatus = RCC_WaitForHSEStartUp();

(4)    设置AHB时钟(HCLK):  RCC_HCLKConfig;

(5)    设置高速AHB时钟(APB2):  RCC_PCLK2Config;

(6)    设置低速AHB时钟(APB1):  RCC_PCLK1Config;

(7)    设置PLL:  RCC_PLLConfig;

(8)    打开PLL:  RCC_PLLCmd(ENABLE);

(9)    等待PLL工作:  while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);

(10)设置系统时钟:  RCC_SYSCLKConfig;

(11)判断PLL是否是系统时钟:  while(RCC_GetSYSCLKSource() != 0x08);

(12)打开要使用的外设时钟:    RCC_APB2PerphClockCmd




原子哥,用不用进行这些配置?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-19 15:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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