精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux應(yīng)用開發(fā)【第三章】輸入系統(tǒng)應(yīng)用開發(fā)

weidongshan ? 來源:weidongshan ? 作者:weidongshan ? 2021-12-10 17:43 ? 次閱讀

文章目錄

3 輸入系統(tǒng)應(yīng)用開發(fā)

3.1 什么是輸入系統(tǒng)?

3.2 輸入系統(tǒng)應(yīng)用框架描述

3.3 輸入系統(tǒng)事件的讀取與分析

3.4 輸入系統(tǒng)應(yīng)用編程實(shí)戰(zhàn)一:通用USB鼠標(biāo)事件讀取

3.5 輸入系統(tǒng)應(yīng)用編程實(shí)戰(zhàn)二:通用鍵盤事件讀取

3.6 輸入系統(tǒng)應(yīng)用編程實(shí)戰(zhàn)三:百問網(wǎng)imx6ul開發(fā)板觸摸屏事件讀取

3 輸入系統(tǒng)應(yīng)用開發(fā)

3.1 什么是輸入系統(tǒng)?

? 在了解輸入系統(tǒng)之前,先來了解什么是輸入設(shè)備?常見的輸入設(shè)備有鍵盤、鼠標(biāo)、遙控桿、書寫板、觸摸屏等等,用戶通過這些輸入設(shè)備與Linux系統(tǒng)進(jìn)行數(shù)據(jù)交換,Linux系統(tǒng)為了統(tǒng)一管控和處理這些設(shè)備,于是就實(shí)現(xiàn)了一套固定的與硬件無關(guān)的輸入系統(tǒng)框架,供用戶空間程序使用,這就是輸入系統(tǒng)。

3.2 輸入系統(tǒng)應(yīng)用框架描述

? 在Linux輸入系統(tǒng)中,主要分三層進(jìn)行管理,分別是input core(輸入系統(tǒng)核心層)、drivers(輸入系統(tǒng)驅(qū)動層)以及event handlers(輸入系統(tǒng)事件層),如下圖所示,這就是Linux輸入系統(tǒng)的基本框架:

pYYBAGGzIT6AOwCJAAESaKuyZRQ108.png

? 舉個非常簡單的例子,比如用戶按下鍵盤里的其中一個按鍵,它遵循流程是這樣的:

? 按鍵按下–>輸入系統(tǒng)驅(qū)動層–>輸入系統(tǒng)核心層–>輸入系統(tǒng)事件層—>用戶空間

? 對于應(yīng)用程序軟件編程的角度,我們只需要關(guān)注用戶空間是怎么得到按鍵按下以后獲取的是什么事件就可以了,例如我想知道我當(dāng)前按下的按是短按還是長按?或者我想知道當(dāng)前我按下鍵盤的是空格鍵還是回車鍵等等。

3.3 輸入系統(tǒng)事件的讀取與分析

? 用戶空間的設(shè)備節(jié)點(diǎn)那么多,怎么知道當(dāng)前是哪個設(shè)備上報(bào)的呢?例如想知道鍵盤是由哪個設(shè)備節(jié)點(diǎn)上報(bào)的,就可以通過以下這條指令來獲取:

cat /proc/bus/input/devices

? 這條指令的含義就是獲取與event對應(yīng)的相關(guān)設(shè)備信息,在ubuntu系統(tǒng)上,我們輸入這個指令可以看到以下結(jié)果:

poYBAGGzIUSAefh2AAF6wVMcypo742.png

? 那么這里的I、N、P、S、U、H、B對應(yīng)的每一行是什么含義呢?

I:id of the device(設(shè)備ID)

參數(shù)由結(jié)構(gòu)體struct input_id來進(jìn)行描述

41 struct input_id {
42 	//總線類型
43 	__u16 bustype;
44 	//與廠商相關(guān)ID
45 	__u16 vendor;
46 	//與產(chǎn)品相關(guān)ID
47 	__u16 product;
48 	//版本ID
49 	__u16 version;
50 };

N:name of the device

設(shè)備名稱

P:physical path to the device in the system hierarchy

系統(tǒng)層次結(jié)構(gòu)中設(shè)備的物理路徑。

S:sysfs path

位于sys文件系統(tǒng)的路徑

U:unique identification code for the device(if device has it)

設(shè)備的唯一標(biāo)識碼

H:list of input handles associated with the device.

與設(shè)備關(guān)聯(lián)的輸入句柄列表。

B:bitmaps(位圖)

PROP:device properties and quirks.

EV:types of events supported by the device.

KEY:keys/buttons this device has.

MSC:miscellaneous events supported by the device.

LED:leds present on the device.

PROP:設(shè)備屬性和怪癖。

EV:設(shè)備支持的事件類型。

KEY:此設(shè)備具有的鍵/按鈕。

MSC:設(shè)備支持的其他事件。

LED:設(shè)備上的指示燈。

通過了解以上參數(shù)的含義,結(jié)合以下指令

cat /proc/bus/input/devices

顯示出來的信息很容易可以知道event1即是鍵盤上報(bào)的事件設(shè)備節(jié)點(diǎn),通過讀取這個event1即可獲得當(dāng)前用戶按下的按鍵具體是哪個事件。

使用cat命令來測試鍵盤事件

pYYBAGGzIUqAEw3kAABBZndylRI130.png

當(dāng)我們在終端輸入

cat /dev/input/event1

? 這條指令并按回車鍵后可以看到一堆亂碼數(shù)據(jù),這些數(shù)據(jù)我們看不懂,但是我們可以知道如果按下了按鍵,終端有反饋消息,這時候就知道這個事件就是我們當(dāng)前操作的這個設(shè)備上報(bào)的事件,那么如何能讓這些數(shù)據(jù)看得懂呢?這時候可以使用hexdump命令來讀取鍵盤事件。

使用hexdump命令來測試鍵盤事件

poYBAGOpYlSAdwE5AAFQnO8vphE070.png

這些數(shù)值是通過input_event結(jié)構(gòu)體來上報(bào)的,它位于/usr/include/linux/input.h這個頭文件,input_event結(jié)構(gòu)體描述如下:

24 struct input_event {
25 	//事件發(fā)生的事件
26 	struct timeval time;
27 	//事件類型
28 	__u16 type;
29 	//事件值
30 	__u16 code;
31 	//該事件上報(bào)的數(shù)值
32 	__s32 value;
33 };

而input_event結(jié)構(gòu)體中的time即是:

1 struct timeval
2 {
3 	__time_t tv_sec;        /* Seconds. */
4 	__suseconds_t tv_usec;    /*Microseconds. */
5 };

? 其中tv_sec為Epoch到創(chuàng)建struct timeval時的秒數(shù),tv_usec為微秒數(shù),即秒后面的零頭,Epoch的意思是指定為1970年一月一日凌晨零點(diǎn)零分零秒,格林威治時間。

? 回到input_event結(jié)構(gòu)體,事件類型type主要有以下三種,分別是:相對事件、絕對事件、鍵盤事件

? 例如:鼠標(biāo)就是一個相對事件,有些情況下也有可能是絕對事件,當(dāng)移動鼠標(biāo)的時候,type類型也就是底層上報(bào)給用戶的事件類型,那么code表示的就是相對于鼠標(biāo)當(dāng)前的位置的X或者Y的坐標(biāo),value則表示相對于當(dāng)前的位置偏移了多少。

事件類型(type)

文件頭文件路徑:

/usr/include/linux/input-event-codes.h

當(dāng)然Linux內(nèi)核版本較低的有可能在以下路徑的這個頭文件:

/usr/include/linux/input.h
34 /*
35  * Event types
36  */
37 
38 #define EV_SYN			0x00	//同步事件
39 #define EV_KEY			0x01	//按鍵事件
40 #define EV_REL			0x02	//相對事件
41 #define EV_ABS			0x03	//絕對事件
42 #define EV_MSC			0x04
43 #define EV_SW			0x05
44 #define EV_LED			0x11
45 #define EV_SND			0x12
46 #define EV_REP			0x14
47 #define EV_FF			0x15
48 #define EV_PWR			0x16
49 #define EV_FF_STATUS		0x17
50 #define EV_MAX			0x1f
51 #define EV_CNT			(EV_MAX+1)

事件值(code)

由于事件值種類繁多,這里就不一一列舉出來,這里舉例鍵盤的部分事件值:

文件頭文件路徑:

/usr/include/linux/input-event-codes.h

當(dāng)然Linux內(nèi)核版本較低的有可能在以下路徑的這個頭文件:

/usr/include/linux/input.h
64 /*
65  * Keys and buttons
66  *
67  * Most of the keys/buttons are modeled after USB HUT 1.12
68  * (see http://www.usb.org/developers/hidpage).
69  * Abbreviations in the comments:
70  * AC - Application Control
71  * AL - Application Launch Button
72  * SC - System Control
73  */
74 
75 #define KEY_RESERVED		0
76 #define KEY_ESC			1
77 #define KEY_1			2
78 #define KEY_2			3
79 #define KEY_3			4
80 #define KEY_4			5
81 #define KEY_5			6
82 #define KEY_6			7
83 #define KEY_7			8
84 #define KEY_8			9
85 #define KEY_9			10
86 #define KEY_0			11
87 #define KEY_MINUS		12
88 #define KEY_EQUAL		13
89 #define KEY_BACKSPACE		14
90 #define KEY_TAB			15
91 #define KEY_Q			16
92 #define KEY_W			17
...

當(dāng)然還有鼠標(biāo)事件值、搖桿事件值、觸摸屏事件值等等。

該事件上報(bào)的數(shù)值(value)

? 這部分上面已經(jīng)舉了鼠標(biāo)的案例進(jìn)行了介紹,接下來我們就通過應(yīng)用程序來獲取事件,后面章節(jié)將會通過鼠標(biāo)、鍵盤以及觸摸屏三個案例,進(jìn)一步的了解輸入系統(tǒng)的應(yīng)用編程。

3.4 輸入系統(tǒng)應(yīng)用編程實(shí)戰(zhàn)一:通用USB鼠標(biāo)事件讀取

? 根據(jù)前面章節(jié)的講解,如果我們需要獲取USB鼠標(biāo)的事件,首先我們要先通過cat /proc/bus/input/devices這個指令查詢與USB鼠標(biāo)事件對應(yīng)的相關(guān)設(shè)備信息,通過實(shí)際測試得知,event2為USB鼠標(biāo)上報(bào)的事件節(jié)點(diǎn)。

pYYBAGGzIVaAfurZAABdrYPV_FM674.png

接下來,通過hexdump命令測試一下鼠標(biāo)事件的輸出:

poYBAGGzIVaAef3uAACXEqG01_0481.png

? 具體上報(bào)的數(shù)值是什么含義可以結(jié)合3.3章節(jié)進(jìn)行分析,這里就不再進(jìn)行闡述,本節(jié)的目的是編寫一個獲取通用USB鼠標(biāo)的事件的應(yīng)用程序,要獲取一個事件,我們需要了解以下幾個部分。

1 設(shè)備上報(bào)事件類型(type)

通過3.3章節(jié),我們知道找到對應(yīng)的事件類型的定義:

文件頭文件路徑:

/usr/include/linux/input-event-codes.h

當(dāng)然Linux內(nèi)核版本較低的有可能在以下路徑的這個頭文件:

/usr/include/linux/input.h
34 /*
35  * Event types
36  */
37 
38 #define EV_SYN			0x00	//同步事件
39 #define EV_KEY			0x01	//按鍵事件
40 #define EV_REL			0x02	//相對事件
41 #define EV_ABS			0x03	//絕對事件
42 #define EV_MSC			0x04
43 #define EV_SW			0x05
44 #define EV_LED			0x11
45 #define EV_SND			0x12
46 #define EV_REP			0x14
47 #define EV_FF			0x15
48 #define EV_PWR			0x16
49 #define EV_FF_STATUS		0x17
50 #define EV_MAX			0x1f
51 #define EV_CNT			(EV_MAX+1)

2 設(shè)備上報(bào)的事件值(code)

由于本節(jié)我們寫的是通用USB鼠標(biāo)的應(yīng)用程序,所以我們找到鼠標(biāo)相關(guān)的code,如下:

文件頭文件路徑:

/usr/include/linux/input-event-codes.h

當(dāng)然Linux內(nèi)核版本較低的有可能在以下路徑的這個頭文件:

/usr/include/linux/input.h
696 /*
697  * Relative axes
698  */
699 
700 #define REL_X			0x00	//相對X坐標(biāo)
701 #define REL_Y			0x01	//相對Y坐標(biāo)
702 #define REL_Z			0x02
703 #define REL_RX			0x03
704 #define REL_RY			0x04
705 #define REL_RZ			0x05
706 #define REL_HWHEEL		0x06
707 #define REL_DIAL		0x07
708 #define REL_WHEEL		0x08
709 #define REL_MISC		0x09
710 #define REL_MAX			0x0f
711 #define REL_CNT			(REL_MAX+1)

在這里,我們暫時只會用來REL_X和REL_Y這兩個參數(shù)。

? 那么所謂的value,就是選擇具體的事件類型(type)和具體的事件值(code)以后所反應(yīng)出來的值,鼠標(biāo)就是相對于當(dāng)前X或者相對于當(dāng)前Y的值,接下來,我們來看一下如何來讀取鼠標(biāo)事件。

在編寫input應(yīng)用程序之前,在程序中需要包含以下頭文件:

#include 

程序編寫步驟:

1 定義一個結(jié)構(gòu)體變量input_event用于描述input事件

struct input_event event_mouse ;

2 打開input設(shè)備的事件節(jié)點(diǎn),這里我們獲取的通用USB鼠標(biāo)是event2

open("/dev/input/event2",O_RDONLY);

3 讀取事件

read(fd ,&event_mouse ,sizeof(event_mouse));

4 根據(jù)上報(bào)的事件進(jìn)行處理

//判斷鼠標(biāo)上報(bào)的類型,可能為絕對事件,也有可能是相對事件
if(EV_ABS == event_mouse.type || EV_REL == event_mouse.type)
{
   //code表示相對位移X或者Y,當(dāng)判斷是X時,打印X的相對位移value
   //當(dāng)判斷是Y時,打印Y的相對位移value
   if(event_mouse.code == REL_X)
   {
      printf("event_mouse.code_X:%dn", event_mouse.code);
      printf("event_mouse.value_X:%dn", event_mouse.value);
   }
   else if(event_mouse.code == REL_Y)
   {
      printf("event_mouse.code_Y:%dn", event_mouse.code);
      printf("event_mouse.value_Y:%dn", event_mouse.value);
   }
}

5 關(guān)閉文件描述符

close(fd);

不難發(fā)現(xiàn),獲取一個輸入系統(tǒng)事件,也是標(biāo)準(zhǔn)的文件操作,這體現(xiàn)了Linux一切皆文件的思想。

完整的程序案例如下:

01 #include 
02 #include 
03 #include 
04 #include 
05 #include 
06 
07 int main(void)
08 {
09     //1、定義一個結(jié)構(gòu)體變量用來描述input事件
10     struct input_event event_mouse ;
11     //2、打開input設(shè)備的事件節(jié)點(diǎn)  我的通用USB鼠標(biāo)事件的節(jié)點(diǎn)是event2
12     int fd    = -1 ;
13 	   fd = open("/dev/input/event2", O_RDONLY);
14     if(-1 == fd)
15     {
16         printf("open mouse event fair!n");
17         return -1 ;
18     }
19     while(1)
20     {
21         //3、讀事件
22         read(fd, &event_mouse, sizeof(event_mouse));
23 		   if(EV_ABS == event_mouse.type || EV_REL == event_mouse.type)
24 		   {
25             //code表示相對位移X或者Y,當(dāng)判斷是X時,打印X的相對位移value
26 			   //當(dāng)判斷是Y時,打印Y的相對位移value
27             if(event_mouse.code == REL_X)
28             {
29 				   printf("event_mouse.code_X:%dn", event_mouse.code);
30                 printf("event_mouse.value_X:%dn", event_mouse.value);
31             }
32             else if(event_mouse.code == REL_Y)
33             {
34                 printf("event_mouse.code_Y:%dn", event_mouse.code);
35                 printf("event_mouse.value_Y:%dn", event_mouse.value);
36             }
37 		}
38     }
39     close(fd);
40     return 0 ;
41 }

代碼編寫完畢后,然后執(zhí)行

gcc test_mouse.c -o test_mouse

編譯程序:

poYBAGGzIVeAKheLAAB12tH5fyY762.png

編譯成功后會生成test_mouse,接下來執(zhí)行test_mouse這個程序。

當(dāng)鼠標(biāo)左右移動的時候上報(bào)的事件:

pYYBAGGzIVeAbZuaAACx3EpRNHk938.png

這時候可以看到,只有相對于X的事件值在發(fā)生,這時候打印的value是X方向相對于原點(diǎn)坐標(biāo)的偏移值。

當(dāng)鼠標(biāo)上下移動的時候上報(bào)的事件:

poYBAGGzIViAXSFLAACLc910bsI711.png

這時候可以看到,只有相對于Y的事件值在發(fā)生,這時候打印的value是Y方向相對于原點(diǎn)坐標(biāo)的偏移值。

3.5 輸入系統(tǒng)應(yīng)用編程實(shí)戰(zhàn)二:通用鍵盤事件讀取

? 如何獲取鍵盤事件在3.3章節(jié)已經(jīng)有了相應(yīng)的介紹,這里就不再寫出來,本節(jié)實(shí)現(xiàn)的是通用鍵盤事件的獲取,結(jié)合3.4章節(jié)獲取鼠標(biāo)事件的方式,這里通用鍵盤事件的節(jié)點(diǎn)為event1,通過結(jié)合3.3章節(jié)與3.4章節(jié),編寫步驟如下:

在編寫input應(yīng)用程序之前,在程序中需要包含以下頭文件:

#include 

程序編寫步驟:

1 定義一個結(jié)構(gòu)體變量input_event用于描述input事件

struct input_event event_keyboard ;

2 打開input設(shè)備的事件節(jié)點(diǎn),我的通用鍵盤事件的節(jié)點(diǎn)是event1

open("/dev/input/event1",O_RDONLY);

3 讀取事件

read(fd ,&event_keyboard ,sizeof(event_keyboard));

4 根據(jù)上報(bào)的事件進(jìn)行處理

//判斷鍵盤事件上報(bào)的類型
if(EV_KEY == event_keyboard.type)
{
    if(1 == event_keyboard.value)
      printf("事件類型:%d  事件值:%d 按下n", event_keyboard.type, 				         event_keyboard.code);
    else if(0 == event_keyboard.value)
      printf("事件類型:%d  事件值:%d 釋放n", event_keyboard.type, event_keyboard.code);
}

5 關(guān)閉文件描述符

close(fd);

完整程序案例實(shí)現(xiàn)如下:

01 #include 
02 #include 
03 #include 
04 #include 
05 #include 
06 
07 int main(void)
08 {
09     //1、定義一個結(jié)構(gòu)體變量用來描述input事件
10     struct input_event event_keyboard ;
11     //2、打開input設(shè)備的事件節(jié)點(diǎn)  我的通用鍵盤事件的節(jié)點(diǎn)是event1
12     int fd    = -1 ;
13 	   fd = open("/dev/input/event1", O_RDONLY);
14     if(-1 == fd)
15     {
16         printf("open mouse event fair!n");
17         return -1 ;
18     }
19     while(1)
20     {
21         //3、讀事件
22         read(fd, &event_keyboard, sizeof(event_keyboard));
23 		   if(EV_KEY == event_keyboard.type)
24 		   {
25 				if(1 == event_keyboard.value)
26 					printf("事件類型:%d  事件值:%d 按下n",event_keyboard.type,event_keyboard.code);
27 				else if(0 == event_keyboard.value)
28 					printf("事件類型:%d  事件值:%d 釋放n",event_keyboard.type,event_keyboard.code);
29 		}
30     }
31     close(fd);
32     return 0 ;
33 }

? 不難發(fā)現(xiàn),通用USB鍵盤程序編寫步驟與通用USB鼠標(biāo)程序編寫步驟幾乎一樣,區(qū)別只是讀取的事件類型以及后面處理的數(shù)據(jù)value不同。

代碼編寫完畢后,然后執(zhí)行

gcc test_keyboard.c -o test_keyboard

編譯程序:

pYYBAGGzIViAS9BzAACHuPt7K-A602.png

編譯成功后會生成test_keyboard,接下來執(zhí)行test_keyboard這個程序。

poYBAGGzIVmAO0eVAACsP2Ct25M471.png

當(dāng)按下按鍵時候,可以觀察到按鍵的按下和釋放的過程,這其實(shí)就是同一個事件下的兩個不同的狀態(tài)。

3.6 輸入系統(tǒng)應(yīng)用編程實(shí)戰(zhàn)三:百問網(wǎng)imx6ul開發(fā)板觸摸屏事件讀取

? 在前面,我們已經(jīng)熟悉了鼠標(biāo)、鍵盤的基本操作,但發(fā)現(xiàn)一個規(guī)律,那就是編程方法類似,唯一不同的地方就是獲取的事件類型以及事件值不同,那么觸摸屏在input系統(tǒng)中是一類什么事件呢?

? 一般情況下,觸摸屏在input系統(tǒng)中屬于絕對事件,也就是觸摸的坐標(biāo)點(diǎn)X和Y會在屏幕的分辨率范圍內(nèi)上報(bào)一個絕對的坐標(biāo)。

絕對事件對應(yīng)的值為:EV_ABS

相應(yīng)X和Y分量的值分別為:

ABS_MT_POSITION_X、ABS_MT_POSITION_Y

通過結(jié)合前面的章節(jié)內(nèi)容,很容易編寫如下程序:

01 #include 
02 #include 
03 #include 
04 #include 
05 #include 
06 
07 int main(int argc, char **argv)
08 {
09     int tp_fd  = -1 ;
10     int tp_ret = -1 ;
11     int touch_x,touch_y ;
12     struct input_event imx6ull_ts ;  
13     //1、打開觸摸屏事件節(jié)點(diǎn)
14     tp_fd = open("/dev/input/event1",O_RDONLY);
15     if(tp_fd < 0)
16     {
17        printf("open /dev/input/event1 fail!n");
18        return -1 ;
19     }
20     while(1)
21     {  
22 	 		//2、獲取觸摸屏相應(yīng)的事件,并打印出當(dāng)前觸摸的坐標(biāo)
23          read(tp_fd ,&imx6ull_ts ,sizeof(imx6ull_ts));  
24          switch(imx6ull_ts.type)
25 	 		{  
26 	    		case EV_ABS:  
27 		 		if(imx6ull_ts.code == ABS_MT_POSITION_X)  
28 		    		touch_x = imx6ull_ts.value ;
29 		 		if(imx6ull_ts.code == ABS_MT_POSITION_Y) 
30 		    		touch_y = imx6ull_ts.value ;
31 		 		break ;
32 		 		defalut:  
33 		 		break ;  
34 	 		}     	
35 	 		printf("touch_x:%d touch_y:%dn",touch_x,touch_y);
36 	 		usleep(100);
37     }	
38     close(tp_fd);
39     return 0;
40 }

代碼編寫完畢后,然后執(zhí)行

gcc test_touchscreen.c -o test_touchscreen

交叉編譯程序:(注意這里是要在開發(fā)板運(yùn)行,不是在PC端)

pYYBAGGzIVqAfuCcAABeFfji2cc574.png

接下來啟動開發(fā)板,然后串口終端輸出rz命令,等待接收PC端的文件,這里我們將test_touchscreen這個文件傳輸?shù)介_發(fā)板。

poYBAGGzIVqAZvjQAABGCaVfjh0005.png

具體操作步驟可參考第11章:PC和開發(fā)板之間傳輸文件

接下來給test_touchscreen添加可執(zhí)行權(quán)限:

pYYBAGGzIVuAXmXLAAA3pDYhVnc173.png

執(zhí)行test_touchscreen,然后用手觸摸屏,可以看到有相應(yīng)的坐標(biāo)值打印:

poYBAGGzIVyAfX1YAAA0_QJU7Jo951.png

審核編輯黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11230

    瀏覽量

    208937
  • 開發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    366

    瀏覽量

    40811
收藏 人收藏

    評論

    相關(guān)推薦

    高頻電子線路第三章答案

    高頻電子線路第三章答案.
    發(fā)表于 06-05 10:37 ?38次下載

    信號與系統(tǒng)第三章課件PPT

    信號與系統(tǒng)第三第三章課件PPT。
    發(fā)表于 12-21 11:23 ?0次下載

    現(xiàn)代電路理論第三章

    現(xiàn)代電路系統(tǒng)第三章
    發(fā)表于 04-26 16:01 ?0次下載

    現(xiàn)代控制理論-第三章-線性系統(tǒng)的能控性與能觀性

    現(xiàn)代控制理論-第三章-線性系統(tǒng)的能控性與能觀性。 bhuygyugyufyufyifyidfyify1 jghgouguogpiu
    發(fā)表于 05-17 14:29 ?0次下載

    自動控制原理第三章習(xí)題答案

    電子專業(yè)單片機(jī)相關(guān)知識學(xué)習(xí)教材資料之自動控制原理第三章習(xí)題答案
    發(fā)表于 09-02 14:30 ?0次下載

    數(shù)字信號處理(第三章-離散傅里葉變換DFT)

    數(shù)字信號處理(第三章-離散傅里葉變換DFT)
    發(fā)表于 12-28 14:23 ?0次下載

    《測控電路》習(xí)題完整參考答案(第三章

    《測控電路》習(xí)題完整參考答案(第三章
    發(fā)表于 02-07 15:17 ?0次下載

    數(shù)字信號處理 第三章

    數(shù)字信號處理 第三章
    發(fā)表于 10-19 09:36 ?5次下載
    數(shù)字信號處理 <b class='flag-5'>第三章</b>

    STM8S BLDC 電機(jī) 第三章 EEPROM 實(shí)驗(yàn)例程

    STM8S BLDC 電機(jī) 第三章 EEPROM 實(shí)驗(yàn)例程
    發(fā)表于 03-12 11:47 ?11次下載

    電力系統(tǒng)繼電保護(hù)第三章-電網(wǎng)的距離保護(hù)(課件).ppt

    繼電保護(hù)第三章-電網(wǎng)的距離保護(hù)(課件)
    發(fā)表于 04-28 09:33 ?0次下載
    電力<b class='flag-5'>系統(tǒng)</b>繼電保護(hù)<b class='flag-5'>第三章</b>-電網(wǎng)的距離保護(hù)(課件).ppt

    慕課嵌入式開發(fā)及應(yīng)用(第三章.脈寬調(diào)制.輸入捕捉.輸出比較))

    慕課蘇州大學(xué).嵌入式開發(fā)及應(yīng)用.第三章.基本模塊.脈寬調(diào)制.輸入捕捉.輸出比較0 目錄3 基本模塊3.2 脈寬調(diào)制.輸入捕捉.輸出比較)3.2.1 課堂重點(diǎn)3.2.2 測試與作業(yè)4 下
    發(fā)表于 11-03 09:36 ?3次下載
    慕課嵌入式<b class='flag-5'>開發(fā)</b>及應(yīng)用(<b class='flag-5'>第三章</b>.脈寬調(diào)制.<b class='flag-5'>輸入</b>捕捉.輸出比較))

    慕課嵌入式開發(fā)及應(yīng)用(第三章.單元測試)

    慕課蘇州大學(xué).嵌入式開發(fā)及應(yīng)用.第三章.基本模塊.單元測試0 目錄3 基本模塊3.11 單元測試3.11.1 課堂重點(diǎn)3.11.2 測試與作業(yè)4 下一0 目錄3 基本模塊3.11 單元測試3.11.1 課堂重點(diǎn)3.11.2 測
    發(fā)表于 11-03 12:36 ?15次下載
    慕課嵌入式<b class='flag-5'>開發(fā)</b>及應(yīng)用(<b class='flag-5'>第三章</b>.單元測試)

    慕課嵌入式開發(fā)及應(yīng)用(第三章.GPIO應(yīng)用-鍵盤)

    慕課蘇州大學(xué).嵌入式開發(fā)及應(yīng)用.第三章.基本模塊.GPIO應(yīng)用-鍵盤0 目錄3 基本模塊3.4 GPIO應(yīng)用-鍵盤3.4.1 課堂重點(diǎn)3.4.2 測試與作業(yè)4 下一0 目錄3 基本模塊3.4
    發(fā)表于 11-03 13:51 ?10次下載
    慕課嵌入式<b class='flag-5'>開發(fā)</b>及應(yīng)用(<b class='flag-5'>第三章</b>.GPIO應(yīng)用-鍵盤)

    第三章 555集成電路應(yīng)用設(shè)計(jì)

    第三章 555集成電路應(yīng)用設(shè)計(jì)
    發(fā)表于 11-19 15:04 ?0次下載

    迅為電子RK3588S開發(fā)第三章Buildroot系統(tǒng)功能測試

    迅為電子RK3588S開發(fā)第三章Buildroot系統(tǒng)功能測試
    的頭像 發(fā)表于 09-02 14:45 ?689次閱讀
    迅為電子RK3588S<b class='flag-5'>開發(fā)</b>板<b class='flag-5'>第三章</b>Buildroot<b class='flag-5'>系統(tǒng)</b>功能測試