娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年04月23日(星期三)

2018年04月23日 | STM32F4(KEY)

發(fā)布者:DazzlingSmile 來(lái)源: eefocus關(guān)鍵字:STM32F4  KEY 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

在實(shí)際的項(xiàng)目開(kāi)發(fā)過(guò)程中,常常會(huì)遇到硬件電路的修改,然后修改的部分就需要修改驅(qū)動(dòng)程序。想這樣需求該來(lái)該去是程序員們最煩悶的事情(重復(fù)勞動(dòng)痛不欲生啊~)。為了避免或減少重復(fù)勞動(dòng),就需要在程序的架構(gòu)上下功夫。接下來(lái)以最常見(jiàn)的KEY驅(qū)動(dòng)程序?yàn)槔M(jìn)行程序結(jié)構(gòu)設(shè)計(jì)。


1,開(kāi)發(fā)環(huán)境

     1,固件庫(kù):STM32F4xx_DSP_StdPeriph_Lib_V1.8.0

     2,編譯器:ARMCC V5.06

     3,IDE:Keil uVision5

     4,操作系統(tǒng):Windows 10 專業(yè)版


2,程序源碼

      KEY.h文件

/** 

  ****************************************************************************** 

  * @file    KEY.h 

  * @author  XinLi 

  * @version v1.0 

  * @date    24-October-2017 

  * @brief   Header file for KEY.c module. 

  ****************************************************************************** 

  * @attention 

  * 

  *

Copyright © 2017 XinLi

 

  * 

  * This program is free software: you can redistribute it and/or modify 

  * it under the terms of the GNU General Public License as published by 

  * the Free Software Foundation, either version 3 of the License, or 

  * (at your option) any later version. 

  * 

  * This program is distributed in the hope that it will be useful, 

  * but WITHOUT ANY WARRANTY; without even the implied warranty of 

  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 

  * GNU General Public License for more details. 

  * 

  * You should have received a copy of the GNU General Public License 

  * along with this program.  If not, see

  * 

  ****************************************************************************** 

  */  

  

#ifndef __KEY_H  

#define __KEY_H  

  

#ifdef __cplusplus  

extern "C" {  

#endif  

  

/* Header includes -----------------------------------------------------------*/  

#include "stm32f4xx.h"  

  

/* Macro definitions ---------------------------------------------------------*/  

#define KEYn                            (3)  

  

#define KEY1_RCC_AHB1Periph_GPIO        RCC_AHB1Periph_GPIOC  

#define KEY1_GPIO                       GPIOC  

#define KEY1_GPIO_Pin                   GPIO_Pin_2  

  

#define KEY2_RCC_AHB1Periph_GPIO        RCC_AHB1Periph_GPIOC  

#define KEY2_GPIO                       GPIOC  

#define KEY2_GPIO_Pin                   GPIO_Pin_3  

  

#define KEY3_RCC_AHB1Periph_GPIO        RCC_AHB1Periph_GPIOC  

#define KEY3_GPIO                       GPIOC  

#define KEY3_GPIO_Pin                   GPIO_Pin_4  

  

#define KEY_RCC_APB1Periph_TIM          RCC_APB1Periph_TIM2  

#define KEY_TIM                         TIM2  

#define KEY_TIM_Prescaler               (83)   /*!< Clock divided to 1MHz. */  

#define KEY_TIM_Period                  (4999) /*!< 5ms timer interrupt. */  

#define KEY_TIM_IRQn                    TIM2_IRQn  

#define KEY_TIM_IRQHandler              TIM2_IRQHandler  

#define KEY_TIM_IRQ_PreemptionPriority  (0)  

#define KEY_TIM_IRQ_SubPriority         (0)  

  

#define KEY_PRESS_STATUS                Bit_SET  

  

/* Type definitions ----------------------------------------------------------*/  

typedef enum  

{  

  KEY_Pin1 = 0,  

  KEY_Pin2 = 1,  

  KEY_Pin3 = 2  

}KEY_Pin;  

  

typedef enum  

{  

  KEY_NoPress    = 0,  

  KEY_ShortPress = 1,  

  KEY_LongPress  = 2  

}KEY_Status;  

  

/* Variable declarations -----------------------------------------------------*/  

/* Variable definitions ------------------------------------------------------*/  

/* Function declarations -----------------------------------------------------*/  

void KEY_Init(void);  

void KEY_DeInit(void);  

KEY_Status KEY_GetStatus(KEY_Pin pin);  

void KEY_SetShortPressCallback(KEY_Pin pin, void (*fun)(void));  

void KEY_SetLongPressCallback(KEY_Pin pin, void (*fun)(void));  

void KEY_ClearShortPressCallback(KEY_Pin pin);  

void KEY_ClearLongPressCallback(KEY_Pin pin);  

  

/* Function definitions ------------------------------------------------------*/  

  

#ifdef __cplusplus  

}  

#endif  

  

#endif /* __KEY_H */  


      KEY.c文件

/** 

  ****************************************************************************** 

  * @file    KEY.c 

  * @author  XinLi 

  * @version v1.0 

  * @date    24-October-2017 

  * @brief   KEY module driver. 

  ****************************************************************************** 

  * @attention 

  * 

  *

Copyright © 2017 XinLi

 

  * 

  * This program is free software: you can redistribute it and/or modify 

  * it under the terms of the GNU General Public License as published by 

  * the Free Software Foundation, either version 3 of the License, or 

  * (at your option) any later version. 

  * 

  * This program is distributed in the hope that it will be useful, 

  * but WITHOUT ANY WARRANTY; without even the implied warranty of 

  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 

  * GNU General Public License for more details. 

  * 

  * You should have received a copy of the GNU General Public License 

  * along with this program.  If not, see

  * 

  ****************************************************************************** 

  */  

  

/* Header includes -----------------------------------------------------------*/  

#include "KEY.h"  

#include  

  

/* Macro definitions ---------------------------------------------------------*/  

/* Type definitions ----------------------------------------------------------*/  

/* Variable declarations -----------------------------------------------------*/  

/* Variable definitions ------------------------------------------------------*/  

static      GPIO_TypeDef *KEY_GPIO[KEYn]                     = {KEY1_GPIO, KEY2_GPIO, KEY3_GPIO};  

static      uint16_t      KEY_GPIO_Pin[KEYn]                 = {KEY1_GPIO_Pin, KEY2_GPIO_Pin, KEY3_GPIO_Pin};  

static      uint32_t      KEY_RCC_AHB1Periph_GPIO[KEYn]      = {KEY1_RCC_AHB1Periph_GPIO, KEY2_RCC_AHB1Periph_GPIO, KEY3_RCC_AHB1Periph_GPIO};  

static __IO int           keyInputHighCount[KEYn]            = {0};  

static __IO int           keyInputLowCount[KEYn]             = {0};  

static __IO KEY_Status    keyStatus[KEYn]                    = {KEY_NoPress, KEY_NoPress, KEY_NoPress};  

static __IO KEY_Status    keyGetStatus[KEYn]                 = {KEY_NoPress, KEY_NoPress, KEY_NoPress};  

static __IO void        (*keyShortPressCallback[KEYn])(void) = {NULL};  

static __IO void        (*keyLongPressCallback[KEYn])(void)  = {NULL};  

  

/* Function declarations -----------------------------------------------------*/  

/* Function definitions ------------------------------------------------------*/  

  

/** 

  * @brief  Key initializes. 

  * @param  None. 

  * @return None. 

  */  

void KEY_Init(void)  

{  

  for(int i = 0; i < KEYn; i++)  

  {  

    GPIO_InitTypeDef GPIO_InitStructure = {0};  

      

    RCC_AHB1PeriphClockCmd(KEY_RCC_AHB1Periph_GPIO[i], ENABLE);  

      

    GPIO_InitStructure.GPIO_Pin   = KEY_GPIO_Pin[i];  

    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_IN;  

    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;  

    GPIO_Init(KEY_GPIO[i], &GPIO_InitStructure);  

      

    keyInputHighCount[i]     = 0;  

    keyInputLowCount[i]      = 0;  

    keyStatus[i]             = KEY_NoPress;  

    keyGetStatus[i]          = KEY_NoPress;  

    keyShortPressCallback[i] = NULL;  

    keyLongPressCallback[i]  = NULL;  

  }  

    

  TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure = {0};  

    

  RCC_APB1PeriphClockCmd(KEY_RCC_APB1Periph_TIM, ENABLE);  

    

  TIM_TimeBaseInitStructure.TIM_Prescaler     = KEY_TIM_Prescaler;  

  TIM_TimeBaseInitStructure.TIM_CounterMode   = TIM_CounterMode_Up;  

  TIM_TimeBaseInitStructure.TIM_Period        = KEY_TIM_Period;  

  TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;  

  TIM_TimeBaseInit(KEY_TIM, &TIM_TimeBaseInitStructure);  

    

  TIM_ClearFlag(KEY_TIM, TIM_FLAG_Update);  

  TIM_ITConfig(KEY_TIM, TIM_IT_Update, ENABLE);  

  TIM_Cmd(KEY_TIM, ENABLE);  

    

  NVIC_InitTypeDef NVIC_InitStructure = {0};  

    

  NVIC_InitStructure.NVIC_IRQChannel                   = KEY_TIM_IRQn;  

  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = KEY_TIM_IRQ_PreemptionPriority;  

  NVIC_InitStructure.NVIC_IRQChannelSubPriority        = KEY_TIM_IRQ_SubPriority;  

  NVIC_InitStructure.NVIC_IRQChannelCmd                = ENABLE;  

  NVIC_Init(&NVIC_InitStructure);  

}  

  

/** 

  * @brief  Key de-initializes. 

  * @param  None. 

  * @return None. 

  */  

void KEY_DeInit(void)  

{  

  for(int i = 0; i < KEYn; i++)  

  {  

    keyInputHighCount[i]     = 0;  

    keyInputLowCount[i]      = 0;  

    keyStatus[i]             = KEY_NoPress;  

    keyGetStatus[i]          = KEY_NoPress;  

    keyShortPressCallback[i] = NULL;  

    keyLongPressCallback[i]  = NULL;  

  }  

    

  TIM_DeInit(KEY_TIM);  

  RCC_APB1PeriphClockCmd(KEY_RCC_APB1Periph_TIM, DISABLE);  

    

  NVIC_InitTypeDef NVIC_InitStructure = {0};  

    

  NVIC_InitStructure.NVIC_IRQChannel                   = KEY_TIM_IRQn;  

  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = KEY_TIM_IRQ_PreemptionPriority;  

  NVIC_InitStructure.NVIC_IRQChannelSubPriority        = KEY_TIM_IRQ_SubPriority;  

  NVIC_InitStructure.NVIC_IRQChannelCmd                = DISABLE;  

  NVIC_Init(&NVIC_InitStructure);  

}  

  

/** 

  * @brief  Get key status. 

  * @param  [in] pin: That key. 

  * @return Key status. 

  */  

KEY_Status KEY_GetStatus(KEY_Pin pin)  

{  

  KEY_Status status = KEY_NoPress;  

    

  if(keyGetStatus[pin] != KEY_NoPress)  

  {  

    status            = keyGetStatus[pin];  

    keyGetStatus[pin] = KEY_NoPress;  

  }  

    

  return status;  

}  

  

/** 

  * @brief  Set key short press callback. 

  * @param  [in] pin: That key. 

  * @param  [in] fun: Function pointer. 

  * @return None. 

  */  

void KEY_SetShortPressCallback(KEY_Pin pin, void (*fun)(void))  

{  

  keyShortPressCallback[pin] = (__IO void (*)(void))fun;  

}  

  

/** 

  * @brief  Set key long press callback. 

  * @param  [in] pin: That key. 

  * @param  [in] fun: Function pointer. 

  * @return None. 

  */  

void KEY_SetLongPressCallback(KEY_Pin pin, void (*fun)(void))  

{  

  keyLongPressCallback[pin] = (__IO void (*)(void))fun;  

}  

  

/** 

  * @brief  Clear key short press callback. 

  * @param  [in] pin: That key. 

  * @param  [in] fun: Function pointer. 

  * @return None. 

  */  

void KEY_ClearShortPressCallback(KEY_Pin pin)  

{  

  keyShortPressCallback[pin] = NULL;  

}  

  

/** 

  * @brief  Clear key long press callback. 

  * @param  [in] pin: That key. 

  * @param  [in] fun: Function pointer. 

  * @return None. 

  */  

void KEY_ClearLongPressCallback(KEY_Pin pin)  

{  

  keyLongPressCallback[pin] = NULL;  

}  

  

/** 

  * @brief  This function handles TIM Handler. 

  * @param  None. 

  * @return None. 

  */  

void KEY_TIM_IRQHandler(void)  

{  

  if(TIM_GetITStatus(KEY_TIM, TIM_IT_Update) != RESET)  

  {  

    TIM_ClearITPendingBit(KEY_TIM, TIM_IT_Update);  

      

    for(int i = 0; i < KEYn; i++)  

    {  

      if(GPIO_ReadInputDataBit(KEY_GPIO[i], KEY_GPIO_Pin[i]) == KEY_PRESS_STATUS)  

      {  

        keyInputLowCount[i]++;  

          

        if(keyInputLowCount[i] > 1)  

        {  

          keyInputHighCount[i] = 0;  

        }  

          

        if(keyInputLowCount[i] > 100)  

        {  

          keyInputLowCount[i] = 0;  

          keyStatus[i]        = KEY_LongPress;  

          keyGetStatus[i]     = KEY_LongPress;  

            

          if(keyLongPressCallback[i] != NULL)  

          {  

            keyLongPressCallback[i]();  

          }  

        }  

      }  

      else  

      {  

        keyInputHighCount[i]++;  

          

        if(keyInputHighCount[i] > 1)  

        {  

          if((keyStatus[i] == KEY_NoPress) && (keyInputLowCount[i] > 1))  

          {  

            keyInputHighCount[i] = 0;  

            keyInputLowCount[i]  = 0;  

            keyStatus[i]         = KEY_ShortPress;  

            keyGetStatus[i]      = KEY_ShortPress;  

              

            if(keyShortPressCallback[i] != NULL)  

            {  

              keyShortPressCallback[i]();  

            }  

          }  

          else  

          {  

            keyInputHighCount[i] = 0;  

            keyInputLowCount[i]  = 0;  

            keyStatus[i]         = KEY_NoPress;  

          }  

        }  

      }  

    }  

  }  

}  


      main.c文件

/** 

  ****************************************************************************** 

  * @file    main.c 

  * @author  XinLi 

  * @version v1.0 

  * @date    24-October-2017 

  * @brief   Main program body. 

  ****************************************************************************** 

  * @attention 

  * 

  *

Copyright © 2017 XinLi

 

  * 

  * This program is free software: you can redistribute it and/or modify 

  * it under the terms of the GNU General Public License as published by 

  * the Free Software Foundation, either version 3 of the License, or 

  * (at your option) any later version. 

  * 

  * This program is distributed in the hope that it will be useful, 

  * but WITHOUT ANY WARRANTY; without even the implied warranty of 

  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 

  * GNU General Public License for more details. 

  * 

  * You should have received a copy of the GNU General Public License 

  * along with this program.  If not, see

  * 

  ****************************************************************************** 

  */  

  

/* Header includes -----------------------------------------------------------*/  

#include "main.h"  

#include "KEY.h"  

  

/* Macro definitions ---------------------------------------------------------*/  

/* Type definitions ----------------------------------------------------------*/  

/* Variable declarations -----------------------------------------------------*/  

/* Variable definitions ------------------------------------------------------*/  

static __IO int key1ShortPressCount = 0;  

static __IO int key1LongPressCount  = 0;  

static __IO int key2ShortPressCount = 0;  

static __IO int key2LongPressCount  = 0;  

  

/* Function declarations -----------------------------------------------------*/  

static void key1ShortPressCallback(void);  

static void key1LongPressCallback(void);  

  

/* Function definitions ------------------------------------------------------*/  

  

/** 

  * @brief  Main program. 

  * @param  None. 

  * @return None. 

  */  

int main(void)  

{  

  KEY_Init();  

  KEY_SetShortPressCallback(KEY_Pin1, key1ShortPressCallback);  

  KEY_SetLongPressCallback(KEY_Pin1, key1LongPressCallback);  

    

  for(;;)  

  {  

    KEY_Status status = KEY_GetStatus(KEY_Pin2);  

      

    if(status != KEY_NoPress)  

    {  

      if(status == KEY_ShortPress)  

      {  

        key2ShortPressCount++;  

      }  

      else  

      {  

        key2LongPressCount++;  

      }  

    }  

  }  

}  

  

/** 

  * @brief  Key 1 short press callback. 

  * @param  None. 

  * @return None. 

  */  

static void key1ShortPressCallback(void)  

{  

  key1ShortPressCount++;  

}  

  

/** 

  * @brief  Key 1 long press callback. 

  * @param  None. 

  * @return None. 

  */  

static void key1LongPressCallback(void)  

{  

  key1LongPressCount++;  

}  


3,注意

       修改接口需要注意,按鍵的檢測(cè)電平、使用的TIM和增減按鍵的個(gè)數(shù)。對(duì)應(yīng)修改KEY_PRESS_STATUS宏、TIM時(shí)鐘配置函數(shù)和源文件的變量定義。



關(guān)鍵字:STM32F4  KEY 引用地址:STM32F4(KEY)

上一篇:STM32F4(BUZZ)
下一篇:STM32F4(LED)

推薦閱讀

集微網(wǎng)消息,在中興通訊被美國(guó)精準(zhǔn)打擊下,警醒了國(guó)產(chǎn)芯片產(chǎn)業(yè)要真正自主可控的同時(shí),掌握國(guó)產(chǎn)手機(jī)出海“命門(mén)”的谷歌(Google)已然出手。近日,專注海外市場(chǎng)的國(guó)內(nèi)手機(jī)廠商向集微網(wǎng)記者透露,我們新機(jī)在通過(guò)谷歌GMS認(rèn)證時(shí)被卡,老款機(jī)型更新認(rèn)證時(shí)也被否。如果這只是個(gè)例,尚可以不必夸大,但如果是普遍性事件,將影響巨大。于是,筆者又向一家主打海外市...
國(guó)家電網(wǎng)有限公司提出“三型兩網(wǎng),世界一流”戰(zhàn)略目標(biāo)后,積極開(kāi)展業(yè)務(wù)業(yè)態(tài)和模式創(chuàng)新。近日,在國(guó)網(wǎng)節(jié)能服務(wù)有限公司舉辦的“三型兩網(wǎng),世界一流”戰(zhàn)略下的綜合能源服務(wù)研討會(huì)上,多個(gè)領(lǐng)域的專家結(jié)合泛在電力物聯(lián)網(wǎng)建設(shè),圍繞綜合能源服務(wù)的發(fā)展規(guī)劃、布局落地等展開(kāi)交流研討。 黨的十九大提出,推進(jìn)能源生產(chǎn)和消費(fèi)革命,構(gòu)建清潔低碳、安全高效的能...
是德科技公司(NYSE:KEYS)宣布,青島海信通信有限公司選用了是德科技的 5G 測(cè)試平臺(tái),一方面用于驗(yàn)證其 5G 設(shè)計(jì)的性能,另一方面用于加速高品質(zhì) 5G 設(shè)備(包括智能手機(jī)、平板電腦和其他移動(dòng)設(shè)備)的市場(chǎng)推廣。是德科技是一家領(lǐng)先的技術(shù)公司,致力于幫助企業(yè)、服務(wù)提供商和政府客戶加速創(chuàng)新,創(chuàng)造一個(gè)安全互聯(lián)的世界。 海信通信是一家總部位于中國(guó)的消費(fèi)...
原理:R:外接電容充放電電阻。Cs:TPAD和PCB間的雜散電容。Cx:手指按下時(shí),手指和TPAD之間的電容。開(kāi)關(guān):電容放電開(kāi)關(guān),由STM32IO口代替。沒(méi)有按下的時(shí)候,充電時(shí)間為T(mén)1(default)。按下TPAD,電容變大,所以充電時(shí)間為T(mén)2。我們可以通過(guò)檢測(cè)充放電時(shí)間,來(lái)判斷是否按下。如果T2-T1大于某個(gè)值,就可以判斷有按鍵按下。檢測(cè)電容觸摸按鍵過(guò)程:①TPAD引腳...

史海拾趣

問(wèn)答坊 | AI 解惑

數(shù)字溫度傳感器DS18B20簡(jiǎn)介

DALLAS最新單線數(shù)字溫度傳感器DS18B20簡(jiǎn)介新的“一線器件”體積更小、適用電壓更寬、更經(jīng)濟(jì) Dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器DS1820是世界上第一片支持 “一線總線”接口的溫度傳感器。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng) ...…

查看全部問(wèn)答∨

線性電路分析——網(wǎng)孔法詳析

一. 定義   由人們主觀設(shè)想的在網(wǎng)孔中流動(dòng)的電流稱為網(wǎng)孔電流,如圖3-3-1中的iⅠ,iⅡ,iⅢ所示,它們的大小和參考方向均是任意設(shè)定的。以網(wǎng)孔電流為待求變量,根據(jù)KVL對(duì)各網(wǎng)孔列寫(xiě)出KVL約束方程而對(duì)電路進(jìn)行分析的方法稱為網(wǎng)孔電流法,簡(jiǎn) ...…

查看全部問(wèn)答∨

六路搶答器

大家好,我現(xiàn)在急需六路搶答器的電路設(shè)計(jì),望大家能夠幫小妹一把!!! 要求: 設(shè)計(jì)制作一個(gè)可以容納六組參賽的數(shù)字式搶答器,每組設(shè)置一個(gè)搶答按紐供搶答者使用; 電路具有第一搶答信號(hào)的鑒別和鎖存功能,在主持人將系統(tǒng)復(fù)位并發(fā)出搶答指令后, ...…

查看全部問(wèn)答∨

實(shí)現(xiàn)低漏電流同時(shí)保證EMI性能的電源設(shè)計(jì)

在AC-DC開(kāi)關(guān)電源中,漏電流最主要的來(lái)源是Y類(lèi)電容。通過(guò)使用變壓器屏蔽繞組或在輸入級(jí)加入一個(gè)扼流圈,可以顯著地降低Y電容的數(shù)值或在某些場(chǎng)合去除它,從而降低漏電流并且仍滿足有一定裕量的傳導(dǎo)EMI限制。實(shí)現(xiàn)這些目標(biāo)的解決方案會(huì)在本文得到分析。 ...…

查看全部問(wèn)答∨

【原創(chuàng)】便攜式生理參數(shù)監(jiān)測(cè)儀設(shè)計(jì)

本帖最后由 paulhyde 于 2014-9-15 09:25 編輯 分享下我的本科畢業(yè)設(shè)計(jì)吧,內(nèi)容還是比較簡(jiǎn)單的,供大家參考~~~~ 本設(shè)計(jì)可實(shí)時(shí)檢測(cè)人體的體溫、脈搏,可測(cè)量人體運(yùn)動(dòng)的步數(shù),計(jì)算行進(jìn)距離以及消耗的卡路里(熱量)~~ 硬件:C8051F330、ZLG7289B、 ...…

查看全部問(wèn)答∨

DDS原理

本帖最后由 paulhyde 于 2014-9-15 03:48 編輯 DDS原理,不看后悔  …

查看全部問(wèn)答∨

LED辭典

[hide]表面粘著型LED的出現(xiàn)是在1980年初,是因應(yīng)更小型封裝和工廠自動(dòng)化而生。初期廠商裹足不前,主要因素是表面粘著LED最早面臨的問(wèn)題是無(wú)法完成高溫紅外線下焊錫回流的步驟。LED的比熱較IC低,溫度升高時(shí)不僅會(huì)造成亮度下降,且超過(guò)攝氏100度時(shí)將 ...…

查看全部問(wèn)答∨

evc調(diào)試問(wèn)題

我想問(wèn)下,在xp環(huán)境的evc工程里我創(chuàng)建了一個(gè)exe工程,但是調(diào)試的時(shí)候彈出一個(gè)wince的窗體,而程序卻連接不上,是什么原因啊? 有沒(méi)有更好的調(diào)試方法,小弟初學(xué)wince,請(qǐng)多指教…

查看全部問(wèn)答∨

Win32 SDK 用GetMenuItemInfo獲取菜單標(biāo)題用SetMenuItemInfo設(shè)置菜單標(biāo)題

非MFC ATL,Win32 SDK 用GetMenuItemInfo獲取菜單標(biāo)題用SetMenuItemInfo設(shè)置菜單標(biāo)題。哪位高手有經(jīng)驗(yàn),給點(diǎn)兒代碼,我自己的代碼用GetLastError用是返回87,快暈了!help me!! 代碼:         MENUITEMINFO mii;   ...…

查看全部問(wèn)答∨

keil中怎么用結(jié)構(gòu),聯(lián)合定義位變量?

keil中怎么用結(jié)構(gòu),聯(lián)合定義位變量?我在ARM中這么定義正確嗎? typedef union _MAC_FRAME_CONTROL{    WORD_VAL word;    struct _MAC_FRAME_CONTROL_bits    {     &nbs ...…

查看全部問(wèn)答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車(chē)開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 牙克石市| 张家口市| 海南省| 汾西县| 南江县| 明溪县| 图们市| 定结县| 常山县| 信丰县| 晴隆县| 阿克| 肇庆市| 新营市| 沂源县| 南溪县| 乌拉特后旗| 普安县| 宁陕县| 丰台区| 淳安县| 封丘县| 万州区| 永仁县| 伊宁市| 汉沽区| 平定县| 营口市| 通州市| 塔河县| 建瓯市| 嘉祥县| 彭州市| 东阿县| 尤溪县| 西青区| 勐海县| 遵义市| 镇沅| 成都市| 上杭县|