你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32有关systick中断配置

[复制链接]
yugong 提问时间:2016-5-14 19:01 /
以下是我测试公共的代码,我没有配置NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);但是测试却成功了,请问是什么原因,谢谢
int        main (void)
{
        rcc_config ();                //        .\config.c
        nvic_config ();                //        .\config.c
        gpio_config ();                //        .\config.c
        usart_config ();        //        .\config.c
        systick_config ();        //        .\config.c
        while (1)
        {       
     GPIO_SetBits(GPIOB, GPIO_Pin_6);
                if(upload_cnt<=5)                                         
                {GPIO_SetBits(GPIOB, GPIO_Pin_5);
           USART_SendData (USART1, upload_cnt);      
                 while ( USART_GetFlagStatus (USART1, USART_FLAG_TXE) == FALSE );}
                else if(upload_cnt<=10)
                 {GPIO_ResetBits(GPIOB, GPIO_Pin_5);}
                else
                 {upload_cnt=0;}
        }

}

void my_systick_IRQHandler (void)                                                                        //        ¶¨Ê±Æ÷ÖжϷþÎñ³ÌÐò
{
        upload_cnt++;                                                                                                        //        ¶¨Ê±Æ÷¼ÆÊý±äÁ¿¼ÓÒ»
        //adc_event = TRUE;
}
void systick_config (void)
{
        SysTick_CLKSourceConfig (SysTick_CLKSource_HCLK_Div8);        //        8·ÖƵ£º8M * 9 /8 = 9M
       //NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);
        SysTick_SetReload (9000);                                                                  //        1ms
        SysTick_ITConfig (ENABLE);                                                                //        ´ò¿ªSystickÖжÏ
        SysTick_CounterCmd(SysTick_Counter_Enable);                        //        ʹÄÜSystick
}

void SysTick_CLKSourceConfig(u32 SysTick_CLKSource)
{
  /* Check the parameters */
  assert_param(IS_SYSTICK_CLK_SOURCE(SysTick_CLKSource));

  if (SysTick_CLKSource == SysTick_CLKSource_HCLK)
  {
    SysTick->CTRL |= SysTick_CLKSource_HCLK;
  }
  else
  {
    SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8;
  }
}

void SysTick_SetReload(u32 Reload)
{
  /* Check the parameters */
  assert_param(IS_SYSTICK_RELOAD(Reload));

  SysTick->LOAD = Reload;
}

void SysTick_ITConfig(FunctionalState NewState)
{
  /* Check the parameters */
  assert_param(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)
  {
    SysTick->CTRL |= CTRL_TICKINT_Set;
  }
  else
  {
    SysTick->CTRL &= CTRL_TICKINT_Reset;
  }
}

void SysTick_CounterCmd(u32 SysTick_Counter)
{
  /* Check the parameters */
  assert_param(IS_SYSTICK_COUNTER(SysTick_Counter));

  if (SysTick_Counter == SysTick_Counter_Enable)
  {
    SysTick->CTRL |= SysTick_Counter_Enable;
  }
  else if (SysTick_Counter == SysTick_Counter_Disable)
  {
    SysTick->CTRL &= SysTick_Counter_Disable;
  }
  else /* SysTick_Counter == SysTick_Counter_Clear */
  {
    SysTick->VAL = SysTick_Counter_Clear;
  }   
}


收藏 评论0 发布时间:2016-5-14 19:01

举报

0个回答

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版