这程序什么意思啊,前两行根本不懂,求大神赐教

2019-03-23 17:34发布

main()
{
        unsigned long i,count=80000;
        unsigned char x=0;
       
        Init_Clock();
        Init_GPIO();
        while (1)
   {
                if(GPIO_ReadInputPin(GPIOG, GPIO_PIN_2)==0x04)
                x=0;
                else if(x==0)
          {
                        x=1;
                       
                        if(count==80000)count=20000;
                        else count=80000;
                }               
               
                GPIO_WriteReverse(GPIOI, GPIO_PIN_0);
                for(i=0;i<count;i++);
         }         
}


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
KCP
2019-03-24 12:20
柠檬酸钠 发表于 2017-8-15 14:01
楼上正解,频率应该不是很准

#include "stm8s_lib.h"

void Init_GPIO(void)
{       
        //led PI0口配置为推挽输出模式
        GPIO_Init(GPIOI, GPIO_PIN_0,GPIO_MODE_OUT_PP_LOW_FAST);
               
        //KEY PG2口配置为悬浮输入模式
    GPIO_Init(GPIOG, GPIO_PIN_2, GPIO_MODE_IN_FL_NO_IT);
}

void Init_Clock(void)
{
        //系统主时钟配置为内部16M
    CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);
}

main()
{
        unsigned long i,count=80000;
        unsigned char x=0;
       
        Init_Clock(); //初始化时钟配置
        Init_GPIO(); //        初始化GPIO配置
        while (1)
   {
                if(GPIO_ReadInputPin(GPIOG, GPIO_PIN_2)==0x04)//PG2按键检测为高电平
                x=0;
                else if(x==0) //PG2按键检测为下降沿,认为有一次按键
          {
                        x=1;
                       
                        if(count==80000)count=20000; //输出频率切换
                        else count=80000;
                }               
               
                GPIO_WriteReverse(GPIOI, GPIO_PIN_0);//LED按指定频率闪烁
                for(i=0;i<count;i++);
         }         
}
这是完整程序给解释下

一周热门 更多>