问题1

__IO uint32_t uwTick_Lcd_Set_Point = 0

__IO是什么?

Q1

问题2

void Key_Proc(void)
{
            
            if(uwTick - uwTick_Key_Set_Point <100) return;//减速函数
            uwTick_Key_Set_Point = uwTick;
    

            ucKey_Val = Key_Scan();
            ucKey_Down = ucKey_Val & (ucKey_Old ^ ucKey_Val); 
            ucKey_Up = ~ucKey_Val & (ucKey_Old ^ ucKey_Val);    
            ucKey_Old = ucKey_Val;
    
            if(ucKey_Down == 4)
            {
                LED_Disp(0xFF);
            }
            if(ucKey_Down == 3)
            {
                LED_Disp(0x00);
            }
}    

减速函数的作用?

问题3

是否按键都采用类似方式监控

问题4

视频中情况的原因

问题5

调试模式的使用方法及作用

https://blog.51cto.com/u_14436836/4893486

问题6

void Lcd_Proc(void)
{
            if(uwTick - uwTick_Lcd_Set_Point <1000) return;//减速函数
            uwTick_Lcd_Set_Point = uwTick;    
            i++;
    
            sprintf((char *)Lcd_Disp_String, "   Timer : %05d S   ",i);
            LCD_DisplayStringLine(Line4,Lcd_Disp_String);
            
}

我注意到,如果i的定义类型是unsigned char 那么i会在计数为255时 -255 然后记录 这是为什么?

问题7

void Key_Proc(void)
{
            
            if(uwTick - uwTick_Key_Set_Point <100) return;//减速函数
            uwTick_Key_Set_Point = uwTick;
    

            ucKey_Val = Key_Scan();
            ucKey_Down = ucKey_Val & (ucKey_Old ^ ucKey_Val); 
            ucKey_Up = ~ucKey_Val & (ucKey_Old ^ ucKey_Val);    
            ucKey_Old = ucKey_Val;
    
            if(ucKey_Down == 4)
            {
                LED_Disp(0xFF);
            }
            if(ucKey_Down == 3)
            {
                LED_Disp(0x00);
            }
            if(ucKey_Down == 2)
            {
                i+=1000;
            }
            if(ucKey_Down == 1)
            {
                i-=1000;
            }
}    

void Lcd_Proc(void)
{
            if(uwTick - uwTick_Lcd_Set_Point <1000) return;//减速函数
            uwTick_Lcd_Set_Point = uwTick;    
            i++;

        unsigned int h = i / 3600;
            unsigned int m = (i % 3600) / 60;
      unsigned int s = i % 60;
    
            LCD_DisplayStringLine(Line2, (uint8_t*)"       iTimer         ");    
            sprintf((char *)Lcd_Disp_String, "   %02d H %02d M %02d S   ",h,m,s);
            LCD_DisplayStringLine(Line4,Lcd_Disp_String);
            LCD_DisplayStringLine(Line6, (uint8_t*)"       passed         ");    
            
}

为什么unsigned int会出现负值?

最后修改:2023 年 04 月 26 日
如果觉得我的文章对你有用,只需评论或转发支持,谢绝投喂!