while(1)中的程序不会运行了?

2019-08-14 19:57发布

      我用OLED显示数据,在主函数while(1)中更新数据,但是发现数据会更新一段时间然后就不会再更新了。我的数据是在定时器中断中接收的,我在想是定时器中断服务函数不运行了还是while(1)不运行了。我就用一个LED小灯做指示。发现放在while(1)中的LED灯不会闪,放在定时器中断中的小灯一直在闪。我想问一下这是什么情况,中断可以跑但是while(1)不能跑了。
   请大神指教。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
WWCool
2019-08-15 20:58
[mw_shl_code=c,true]#include "sys.h"
////float a[3],w[3],angle[3],T;

void LED_Init(void)
{
GPIO_InitTypeDef  GPIO_InitStructure;
       
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE);//使能PB,PE端口时钟
       
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                                 //LED0-->PB.5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度为50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure);                                         //根据设定参数初始化GPIOB.5
GPIO_SetBits(GPIOB,GPIO_Pin_5);                                                 //PB.5 输出高

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;                             //LED1-->PE.5 端口配置, 推挽输出
GPIO_Init(GPIOC, &GPIO_InitStructure);                                           //推挽输出 ,IO口速度为50MHz
GPIO_SetBits(GPIOC,GPIO_Pin_13);                                                  //PE.5 输出高
}




void NVIC_Configuration(void)
{
        NVIC_InitTypeDef    NVIC_InitStructure;                                            //定义用于配置中断的结构体变量

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  
        NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;                           //指定中断源
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;           //抢占优先级1
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;             //指定响应优先级别1
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                       //打开中断
        NVIC_Init(&NVIC_InitStructure);       
}


int main()
{
        Stm32_Clock_Init(9);
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3);
         delay_init(72);
         uart_init(115200);
//  USART2_Config();
//         NVIC_Configuration();  
//         Motor_Init(7199,0);
//         OLED_Init();
//         OLED_Clear();
         LED_Init();
       
               
//        delay_ms(1000);
        delay_ms(1000);
        TIM2_Init(49,7199);


//  Set_Motor_PWM(6000,0,0,0);
               
while (1)
   {
        //        Data_Deal(0,0,myabs(angle[0]));
        //        Data_Deal(0,2,myabs(angle[1]));
        // UpData_MPU6050();
    //  Oled_Show();
                         LED2=!LED2;
            delay_ms(100);
                               
    }

        }







[/mw_shl_code]

一周热门 更多>