色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

自己編寫函數示例代碼很難嗎?分享幾個示例!

得捷電子DigiKey ? 來源:未知 ? 2023-11-16 16:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Q A &

問:Arduino Uno的函數示例

我決定自己編寫函數示例代碼,因為這應該是Arduino中的基本示例。網絡上確實有關于使用函數的文檔,但是,如果要嘗試使用代碼環境,則必須得訪問Arduino網站,而且他們的示例擴展的效果并不好。本帖將分成以下幾個部分:以不包含任何函數的起始代碼為例、使用一個函數轉換相同的程序、展示可以利用函數做些什么的擴展示例、與沒有函數的代碼版本進行比較,表明更少的代碼更易于使用。注意,本例假設已知一些基本的Arduino示例。

無函數的起始代碼

/*

* This code is the starting code for my functionExample, I want to turn pins 13, 12, 11 high; wait for half a second; turn all the pins off; wait for half a second;

* and turn pins 13 and 11 on while keeping 12 off and wait for another half second.

*/

void setup() {

pinMode(13, OUTPUT);

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

}

boolean writePin = HIGH; //set a global variable to make it easier to turn things on and off in the function, use !writePin for LOW

void loop() {

//first, let's see how cumbersome writing code can be when trying to run several LEDs

//write all output pins high:

digitalWrite(13, writePin);

digitalWrite(12, writePin);

digitalWrite(11, writePin);

delay(500); //delay half a second

//write all pins low

digitalWrite(13, !writePin);

digitalWrite(12, !writePin);

digitalWrite(11, !writePin);

delay(500); //delay half a second

//write 13 and 11 high, keep 12 low

digitalWrite(13, writePin);

digitalWrite(12, !writePin);

digitalWrite(11, writePin);

delay(500);//delay half a second

//doing that sequence alone takes 12 lines of code to accomplish something that could probably be done in less

}

// 20 lines of code not including comments

向上滑動查看完整代碼

我通常會計算包含{}的重要代碼行的數量,而不計算注釋,因為這些注釋無論如何都會在編譯器中被忽略。這篇代碼看起來非常笨拙,包含很多重復的行,因此如果需要執行不同的操作,你就必須進行更改。在進行故障排除或開發更為復雜的程序時,其效率會非常低下。

利用函數重新改造起始代碼

/*

TheArduino home page does

try toexplain funcitons using a math example and reading an analog pin, which iscool, but there are more things one can

do withfunctions. The anatomy of a function in Arduino is as follows:

dataTypevariableName(dataType parameterVariable1, dataType parameterVariable2, ...){}

Allfunctions have to have a valid Arduino dataType at the beginning of the line ofcode because we use a variable to reference the entire code that will be runbetween the {}

If youwant numbers or some sort of result with measurable values, you will have touse a data type that can store those values; examples are

int,double, unsigned long, long, boolean, float (and all the other types that canstore data)

The onlything to mention is that functions with these dataTypes must have a returnstatement; Example:

intaddTwoNumb(int one, int two){

intresult = one + two;

returnresult;

}

Thefunction above returns the calculation of one and two and can be stored in anew variable when called/used in the main loop.

Thevalues inside the () are called parameters, functions don't always requireparameters (most do though), so the () can be empty.

Parameters are placeholder variables with anydata type valid in Arduino. These variables do not have to be assigned valuesuntil the function is used/called in the main loop, values are passed as soonas they are called. Any number of new variables can be added into a functionand any amount of code can be added to a function, even functions can callother functions! (gets a little confusing at that point)

*/

void setup() {

pinMode(13, OUTPUT);

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

}

boolean writePin = HIGH; //set a globalvariable to make it easier to turn things on and off in the function, use!writePin for LOW

void loop() {

sequenceLights(13, 12, 11, writePin, writePin, writePin, 500);//call/use sequence lights on pins 13, 12, 11; use the default value forwritePin (HIGH), delay for half a second (500 mS)

sequenceLights(13, 12, 11, !writePin, !writePin, !writePin, 500);

sequenceLights(13, 12, 11, writePin, !writePin, writePin, 500);

}

/* Functions are typically defined or writtenbelow the loop statement for clarity*/

//notice that the function below uses the exactsame code but uses different variables and that we don't use a datatype (void),we aren't calculating anything, so there doesn't need to be a datatype

//the function takes 3 integers to begin with:pin13, pin12, pin11; these represent the values for the pins we want to control

//then the next three values are writeFunc1,writeFunc2, writeFunc3 which are boolean values used to control the pins (HIGHor LOW), we want to be able to use unique instructions per light as that is howthe original sequence worked

//finaly delayPeriod is used in place of 500,because what if we want to change the timing, why not?

void sequenceLights(int pin13, int pin12, intpin11, boolean writeFunc1, boolean writeFunc2, boolean writeFunc3, intdelayPeriod){

digitalWrite(pin13, writeFunc1);

digitalWrite(pin12, writeFunc2);

digitalWrite(pin11, writeFunc3);

delay(delayPeriod);

}

//17 lines of code not including comments

void setup() {

//Serial.begin(9600); //I often use the serial monitor to debug myprogram or to do some testing, I then comment the line of code to increase someruntime speed (counted this line of commented code as it was essential to myprocess)

pinMode(13, OUTPUT);

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

pinMode(10, OUTPUT);

pinMode(9, OUTPUT);

pinMode(8, OUTPUT);

}

int countRndSeq = 0; //set initial variable forcounting variable for the random sequence to "reset"

int randPin = random(8, 14); //set the randomPin variable to a random number between 8 and 13 (14 for including 13 as achoice); we only need 8-13 as those are the pins I use

void loop() {

randSequenceLightSlow(5, 125, 1200); //run function for a randomsequence, set counting interval at 5, set minimum delay at 125, set the maxdelay to 1200 (1.2 seconds) (I decided to move the randMode into the functionbecause it was easier to accomplish)

countRndSeq = 0; //reset the counter for the next sequence

delay(3000); //wait three seconds then turn off all the lights (made afunction for that)

allPinsWrite(13, 12, 11, 10, 9, 8 , LOW);

randSequenceLightSlow(7, 125, 1450); //run function for random sequenceusing counting interval at 7, minimum delay at 125, set max delay to 1450(1.450 seconds)

countRndSeq = 0; //reset counter for next sequence

delay(3000); //wait three seconds and turn off all the lights

allPinsWrite(13, 12, 11, 10, 9, 8, LOW);

}

/*

* Thefollowing uses a while loop for control, it does random lights and slows downdelay by a set interval between steps (larger interval will make it count andslow down much quicker)

* Aslong as that counting number (countRndSeq) is less than the max delay (maxDel),it will do the following in order:

* 1.chose a random pin 8-13 and set it equal to a variable

* 2.Pick the random Mode value each time the while loop runs again (increaseschance to get modes 0-2)

* 2.turn off the pin associated to that number using the delay amount of the samenumber that countrRndSeq is currently at

* 3.Increase countRndSeq by the interval amount set by calling the function (can beany integer)

* 4.Check if the current count is greater than the minimum delay and then checkwhich mode (remember I set it to random above); there are 3 modes 0, 1, 2

* NOTE:For #4, 0 has a high chance of adding less to countRndSeq, 1 has a mediumchance of adding a bit more to countRndSeq, 2 has a low chance of adding quitea bit to countRndSeq

* 5. Setthe final pin after the sequence has finished to high to simulate that is thefinal pin the program landed on

* SeecalcThreshChance for an explanation of how I made weighted random events forthe chance for the lights to slow faster

*/

void randSequenceLightSlow(int interval, intminDel, int maxDel){

while(countRndSeq < maxDel){

randPin = random(8, 14);

intmode = random(0, 3);

digitalWrite(randPin, HIGH);

delay(countRndSeq);

digitalWrite(randPin, LOW);

delay(countRndSeq);

countRndSeq += interval;

if(countRndSeq > minDel && mode == 0){

countRndSeq += calcThreshChance(mode, interval);

}else if(countRndSeq > minDel && mode == 1){

countRndSeq += calcThreshChance(mode, interval);

}else if(countRndSeq > minDel && mode == 2){

countRndSeq += calcThreshChance(mode, interval);

}

}

digitalWrite(randPin, HIGH);

}

/*

* Simplefunction that uses integers 8-13 and a boolean value to turn on or off all theLEDs at once

*/

void allPinsWrite(int p1, int p2, int p3, intp4, int p5, int p6, boolean writeInst){

digitalWrite(p1, writeInst);

digitalWrite(p2, writeInst);

digitalWrite(p3, writeInst);

digitalWrite(p4, writeInst);

digitalWrite(p5, writeInst);

digitalWrite(p6, writeInst);

}

/*

* Thefollowing function takes an integer 0-2 and calculates the chance for it to addmore to the number countRndSeq

* Firstit sets up three variables local to the function (chance for around 50, achance for around 200, and a chance for around 300)

* Thenthe following first check is made: check which mode is selected, 0, 1, or 2 (ifsomeone entered something else or not calculated it will return 0 and count bythe regular interval in the randomSequence)

* If itis mode 0, use a relatively short random range from 45 to 69 and check if thatrandom number falls between 50 and 60 which is a pretty high chance based onthe short range, so it will more than likely add 1000 plus that random numberto countRndSeq

* If itis mode 1, use a larger range from 200 to 299 and check if that random numberlies between 250 and 255, which is a medium chance, so it may or may not usethat random number + 2000

* If itis mode 2, use a much larger range from 300 to 599 and check if that randomnumber lies between 320 and 324, which is a low chance, so it has lesslikelihood of using that random number and adding 3000

* Allother cases it will just add the regular interval

*/

int calcThreshChance(int mode, int interval){

intrandCh50 = 0;

intrandCh200 = 0;

intrandCh300 = 0;

if(mode == 0){

randCh50 = random(45, 70);

if(randCh50 >= 50 && randCh50 <= 60){

return randCh50 + 1000;

}else {

return interval;

}

}else if (mode == 1){

randCh200 = random(200, 300);

if(randCh200 >= 250 && randCh200 <= 255){

return randCh200 + 2000;

}else {

return interval;

}

}else if (mode == 2){

randCh300 = random(300, 600);

if(randCh300 >= 320 && randCh300 <= 324){

return randCh300 + 3000;

}else {

return interval;

}

}else {

return interval;

}

}

//77 lines of code not including comments

向上滑動查看完整代碼

即使整篇代碼只減少了3行,但在希望試驗延遲值或者引腳是變高還是變低等情況下,你就能輕松快速地調整相關值。如果沒有函數,你每次都需要手動添加四行代碼。

初始代碼接線圖

wKgaomVVzmuAepXUAAGhHEQTe5I163.png

使用函數的擴展代碼

void setup() {

//Serial.begin(9600); //I often use the serial monitor to debug my program or to do some testing, I then comment the line of code to increase some runtime speed (counted this line of commented code as it was essential to my process)

pinMode(13, OUTPUT);

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

pinMode(10, OUTPUT);

pinMode(9, OUTPUT);

pinMode(8, OUTPUT);

}

int countRndSeq = 0; //set initial variable for counting variable for the random sequence to "reset"

int randPin = random(8, 14); //set the random Pin variable to a random number between 8 and 13 (14 for including 13 as a choice); we only need 8-13 as those are the pins I use

void loop() {

randSequenceLightSlow(5, 125, 1200); //run function for a random sequence, set counting interval at 5, set minimum delay at 125, set the max delay to 1200 (1.2 seconds) (I decided to move the randMode into the function because it was easier to accomplish)

countRndSeq = 0; //reset the counter for the next sequence

delay(3000); //wait three seconds then turn off all the lights (made a function for that)

allPinsWrite(13, 12, 11, 10, 9, 8 , LOW);

randSequenceLightSlow(7, 125, 1450); //run function for random sequence using counting interval at 7, minimum delay at 125, set max delay to 1450 (1.450 seconds)

countRndSeq = 0; //reset counter for next sequence

delay(3000); //wait three seconds and turn off all the lights

allPinsWrite(13, 12, 11, 10, 9, 8, LOW);

}

/*

* The following uses a while loop for control, it does random lights and slows down delay by a set interval between steps (larger interval will make it count and slow down much quicker)

* As long as that counting number (countRndSeq) is less than the max delay (maxDel), it will do the following in order:

* 1. chose a random pin 8-13 and set it equal to a variable

* 2. Pick the random Mode value each time the while loop runs again (increases chance to get modes 0-2)

* 2. turn off the pin associated to that number using the delay amount of the same number that countrRndSeq is currently at

* 3. Increase countRndSeq by the interval amount set by calling the function (can be any integer)

* 4. Check if the current count is greater than the minimum delay and then check which mode (remember I set it to random above); there are 3 modes 0, 1, 2

* NOTE: For #4, 0 has a high chance of adding less to countRndSeq, 1 has a medium chance of adding a bit more to countRndSeq, 2 has a low chance of adding quite a bit to countRndSeq

* 5. Set the final pin after the sequence has finished to high to simulate that is the final pin the program landed on

* See calcThreshChance for an explanation of how I made weighted random events for the chance for the lights to slow faster

*/

void randSequenceLightSlow(int interval, int minDel, int maxDel){

while(countRndSeq < maxDel){

randPin = random(8, 14);

int mode = random(0, 3);

digitalWrite(randPin, HIGH);

delay(countRndSeq);

digitalWrite(randPin, LOW);

delay(countRndSeq);

countRndSeq += interval;

if(countRndSeq > minDel && mode == 0){

countRndSeq += calcThreshChance(mode, interval);

} else if(countRndSeq > minDel && mode == 1){

countRndSeq += calcThreshChance(mode, interval);

} else if(countRndSeq > minDel && mode == 2){

countRndSeq += calcThreshChance(mode, interval);

}

}

digitalWrite(randPin, HIGH);

}

/*

* Simple function that uses integers 8-13 and a boolean value to turn on or off all the LEDs at once

*/

void allPinsWrite(int p1, int p2, int p3, int p4, int p5, int p6, boolean writeInst){

digitalWrite(p1, writeInst);

digitalWrite(p2, writeInst);

digitalWrite(p3, writeInst);

digitalWrite(p4, writeInst);

digitalWrite(p5, writeInst);

digitalWrite(p6, writeInst);

}

/*

* The following function takes an integer 0-2 and calculates the chance for it to add more to the number countRndSeq

* First it sets up three variables local to the function (chance for around 50, a chance for around 200, and a chance for around 300)

* Then the following first check is made: check which mode is selected, 0, 1, or 2 (if someone entered something else or not calculated it will return 0 and count by the regular interval in the randomSequence)

* If it is mode 0, use a relatively short random range from 45 to 69 and check if that random number falls between 50 and 60 which is a pretty high chance based on the short range, so it will more than likely add 1000 plus that random number to countRndSeq

* If it is mode 1, use a larger range from 200 to 299 and check if that random number lies between 250 and 255, which is a medium chance, so it may or may not use that random number + 2000

* If it is mode 2, use a much larger range from 300 to 599 and check if that random number lies between 320 and 324, which is a low chance, so it has less likelihood of using that random number and adding 3000

* All other cases it will just add the regular interval

*/

int calcThreshChance(int mode, int interval){

int randCh50 = 0;

int randCh200 = 0;

int randCh300 = 0;

if(mode == 0){

randCh50 = random(45, 70);

if(randCh50 >= 50 && randCh50 <= 60){

return randCh50 + 1000;

} else {

return interval;

}

} else if (mode == 1){

randCh200 = random(200, 300);

if(randCh200 >= 250 && randCh200 <= 255){

return randCh200 + 2000;

} else {

return interval;

}

} else if (mode == 2){

randCh300 = random(300, 600);

if(randCh300 >= 320 && randCh300 <= 324){

return randCh300 + 3000;

} else {

return interval;

}

} else {

return interval;

}

}

//77 lines of code not including comments

向上滑動查看完整代碼

這篇代碼的主題是在一定程度上模擬六面骰子的滾動,該骰子起先快速滾動,后來逐漸減慢到靜止不動。該代碼包含內置隨機函數,該函數使用了起始編號(包含在生成中)和在生成中排除的結束編號。它不僅隨機化了引腳(8-13),還隨機化了和一些骰子一樣明顯減速的幾率。我用了三種幾率“模式”來實現這一效果:高幾率:計數變量的增量較少;中等幾率:計數變量的增量稍多;低幾率:計數變量的增量較多(請參見代碼中的注釋,了解完整的代碼環境)。我創建了三個自定義函數,使這個概念更加易于理解和試驗。

無自定義函數的擴展代碼

void setup() {

pinMode(13, OUTPUT);

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

pinMode(10, OUTPUT);

pinMode(9, OUTPUT);

pinMode(8, OUTPUT);

}

int countRndSeq = 0;

int randPin = random(8,14);

int minDel1 = 125;

int maxDel1 = 1200;

int interval1 = 5;

int minDel2 = 125;

int maxDel2 = 1450;

int interval2 = 7;

int randCh50 = 0;

int randCh200 = 0;

int randCh300 = 0;

void loop() {

while(countRndSeq < maxDel1){

randPin = random(8, 14);

int randMode = random(0, 3);

digitalWrite(randPin, HIGH);

delay(countRndSeq);

digitalWrite(randPin, LOW);

delay(countRndSeq);

countRndSeq += interval1;

if(countRndSeq > minDel1 &&randMode == 0){

randCh50 = random(45, 70);

if(randCh50 >= 50 && randCh50<= 60){

countRndSeq += randCh50 + 1000;

} else {

countRndSeq += interval1;

}

} else if(countRndSeq > minDel1&& randMode == 1){

randCh200 = random(200, 300);

if(randCh200 >= 250 &&randCh200 <= 255){

countRndSeq += randCh200 + 2000;

} else {

countRndSeq += interval1;

}

} else if(countRndSeq > minDel1&& randMode == 2){

randCh200 = random(300, 600);

if(randCh200 >= 320 &&randCh200 <= 324){

countRndSeq += randCh200 + 3000;

} else {

countRndSeq += interval1;

}

} else {

countRndSeq += interval1;

}

}

digitalWrite(randPin, HIGH);

countRndSeq = 0;

delay(3000);

digitalWrite(13, LOW);

digitalWrite(12, LOW);

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

while(countRndSeq < maxDel2){

randPin = random(8, 14);

int randMode = random(0, 3);

digitalWrite(randPin, HIGH);

delay(countRndSeq);

digitalWrite(randPin, LOW);

delay(countRndSeq);

countRndSeq += interval2;

if(countRndSeq > minDel2 &&randMode == 0){

randCh50 = random(45, 70);

if(randCh50 >= 50 && randCh50<= 60){

countRndSeq += randCh50 + 1000;

} else {

countRndSeq += interval2;

}

} else if(countRndSeq > minDel2&& randMode == 1){

randCh200 = random(200, 300);

if(randCh200 >= 250 &&randCh200 <= 255){

countRndSeq += randCh200 + 2000;

} else {

countRndSeq += interval2;

}

} else if(countRndSeq > minDel2&& randMode == 2){

randCh200 = random(300, 600);

if(randCh200 >= 320 &&randCh200 <= 324){

countRndSeq += randCh200 + 3000;

} else {

countRndSeq += interval2;

}

} else {

countRndSeq += interval2;

}

}

digitalWrite(randPin, HIGH);

countRndSeq = 0;

delay(3000);

digitalWrite(13, LOW);

digitalWrite(12, LOW);

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

}

//105 lines of code not includingcomments

向上滑動查看完整代碼

注意,在實現相同效果的情況下,此部分的代碼數量顯著增加(函數版本的代碼少了28行,這在構建更大的程序時非常重要)。它不僅減少了代碼數量,而且這些函數的使用方式非常便于利用不同的值進行試驗。而手動編碼版本的代碼需要在代碼中更改若干變量才能進行試驗。想象一下,在需要進行大量試驗的情況下,如果進行每個操作都需要更改代碼,那將是多么的恐怖:而如果使用函數,那么只需編輯一個代碼塊即可快速測試功能。

擴展代碼接線圖

wKgaomVVzmuAB3R6AAIhJHrkI78378.png

wKgaomVVzmuAJKTQAAABcngP-W4683.png

更多Arduino技術相關內容請查看以下內容:
  • 適合Arduino 和 Raspberry Pi 匹配的攝像頭

  • Arduino 睡眠模式示例

  • 如何選擇適用于Arduino的IR、UV和可見光放射體

  • Arduino 擴展板

  • Arduino setup() 和 loop() 函數的目的是什么?
wKgaomVVzmuAJKTQAAABcngP-W4683.png ? ?最后,如果你喜歡這篇文章,快分享給更多的小伙伴吧!切記點個贊哦!

提示點擊菜單設計支持:工程師錦囊,獲取更多工程師小貼士

秘技知識學不停 專屬福利享不停

就等您加入!

點此登記

賺積分、換好禮

立即到「會員權益」查看您的禮遇! 如有任何問題,歡迎聯系得捷電子DigiKey的客服團隊

中國(人民幣)客服

wKgaomVVzmyACSUiAAADBaTNctA728.png400-920-1199wKgaomVVzmyAZsabAAADAQryhLs299.png服務支持 > 聯系客服 > 微信客服wKgaomVVzmyAQBCeAAADNUSMvSY160.pngservice.sh@digikey.comwKgaomVVzmyAWhZrAAACyRJDcPk809.png QQ在線實時咨詢:4009201199

中國(美金)/ 香港客服

wKgaomVVzmyACSUiAAADBaTNctA728.png

400-882-4440

wKgaomVVzmyACSUiAAADBaTNctA728.png852-3104-0500wKgaomVVzmyAQBCeAAADNUSMvSY160.pngchina.support@digikey.comwKgaomVVzmyAa3huAACA1g3d7HM565.png

wKgaomVVzmyAOWUqAAJQEo9UZ9g372.png

點擊下方“閱讀原文”查看更多

讓我知道你在看wKgaomVVzm2AbQQmAAAD385SHbk520.png


原文標題:自己編寫函數示例代碼很難嗎?分享幾個示例!

文章出處:【微信公眾號:得捷電子DigiKey】歡迎添加關注!文章轉載請注明出處。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 得捷電子
    +關注

    關注

    1

    文章

    255

    瀏覽量

    10046

原文標題:自己編寫函數示例代碼很難嗎?分享幾個示例!

文章出處:【微信號:得捷電子DigiKey,微信公眾號:得捷電子DigiKey】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    BLE代碼示例中Wi-Fi連接重試失敗的原因?

    您好,我正在使用 BLE 代碼示例進行 Wi-Fi 接入。我從 modus 工具箱下載了代碼示例代碼
    發表于 07-08 07:42

    如何使用自定義設置回調函數

    你好,我正在嘗試編寫自己的自定義設置回調函數,并使用 fastEnum=false。 是否有任何代碼示例或資料可供我參考? void CyU
    發表于 05-21 06:11

    RAKsmart企業服務器上部署DeepSeek編寫運行代碼

    在RAKsmart企業服務器上部署并運行DeepSeek模型的代碼示例和詳細步驟。假設使用 Python + Transformers庫 + FastAPI實現一個基礎的AI服務。主機推薦小編為您整理發布RAKsmart企業服務器上部署DeepSeek
    的頭像 發表于 03-25 10:39 ?347次閱讀

    如何獲取SMBus示例代碼

    想找一個用硬件SMBus外設的示例代碼,但是在網上找到的很多都是HAL庫的版本,我目前的代碼是用的標準庫,想知道ST官方有沒有相關的示例代碼
    發表于 03-10 07:16

    用于 SPI 絕對編碼器的 Arduino 示例代碼

    作者:Damon Tarry, Design Applications Engineer, Same Sky 本 Arduino 示例代碼教程旨在為用戶提供一個堅實的起點,以便通過串行外設接口
    的頭像 發表于 01-26 21:35 ?872次閱讀
    用于 SPI 絕對編碼器的 Arduino <b class='flag-5'>示例</b><b class='flag-5'>代碼</b>

    tcpdump使用示例

    這里收集了一些實用的?tcpdump?使用示例,使用它們可提升您的網絡故障排除和安全測試能力。 熟練掌握下面的?tcpdump?使用示例,可以幫助我們更好的了解自己的網絡。 了解?tcpdump
    的頭像 發表于 01-06 09:33 ?803次閱讀

    HAL庫的函數調用示例

    HAL(Hardware Abstraction Layer,硬件抽象層)庫是STM32等微控制器中常用的庫,它為開發者提供了訪問和控制硬件設備的接口。以下是一些常用的HAL庫函數及其調用示例: 一
    的頭像 發表于 12-02 14:01 ?1763次閱讀

    LP589x和TLC698x示例代碼用戶指南

    電子發燒友網站提供《LP589x和TLC698x示例代碼用戶指南.pdf》資料免費下載
    發表于 11-13 15:57 ?0次下載
    LP589x和TLC698x<b class='flag-5'>示例</b><b class='flag-5'>代碼</b>用戶指南

    TPS929xxx-Q1示例代碼

    電子發燒友網站提供《TPS929xxx-Q1示例代碼.pdf》資料免費下載
    發表于 11-13 14:59 ?2次下載
    TPS929xxx-Q1<b class='flag-5'>示例</b><b class='flag-5'>代碼</b>

    LP5891-Q1示例代碼用戶指南

    電子發燒友網站提供《LP5891-Q1示例代碼用戶指南.pdf》資料免費下載
    發表于 11-12 14:08 ?1次下載
    LP5891-Q1<b class='flag-5'>示例</b><b class='flag-5'>代碼</b>用戶指南

    UART串口通信示例:開啟通信寶藏之門的定位模組LuatOS入門

    今天我們要講解的是UART串口通信示例,關于Air201資產定位模組LuatOS入門,我會從搭建環境、代碼燒錄、示例效果等來細說:
    的頭像 發表于 11-03 19:55 ?1554次閱讀
    UART串口通信<b class='flag-5'>示例</b>:開啟通信寶藏之門的定位模組LuatOS入門

    編寫高效Testbench的指南和示例

    Testbench是驗證HDL設計的主要手段,本文提供了布局和構建高效Testbench的指南以及示例。另外,本文還提供了一種示例,可以為任何設計開發自檢Testbench。
    的頭像 發表于 10-29 16:14 ?2070次閱讀
    <b class='flag-5'>編寫</b>高效Testbench的指南和<b class='flag-5'>示例</b>

    CC430射頻示例

    電子發燒友網站提供《CC430射頻示例.pdf》資料免費下載
    發表于 10-18 09:48 ?0次下載
    CC430射頻<b class='flag-5'>示例</b>

    掃描模塊的編程示例和調試策略

    電子發燒友網站提供《掃描模塊的編程示例和調試策略.pdf》資料免費下載
    發表于 09-27 09:38 ?0次下載
    掃描模塊的編程<b class='flag-5'>示例</b>和調試策略

    BQ40Z80量產校準代碼示例

    電子發燒友網站提供《BQ40Z80量產校準代碼示例.pdf》資料免費下載
    發表于 09-27 09:34 ?2次下載
    BQ40Z80量產校準<b class='flag-5'>代碼</b><b class='flag-5'>示例</b>
    主站蜘蛛池模板: 国产精品美女久久久久av超清 | 狠狠88综合久久久久综合网 | 在线免费黄色av | 国产aaa | 91在线精品一区二区 | 少妇挑战三个黑人惨叫4p国语 | 中文无码久久精品 | 亚洲精品五月天 | 玉米地疯狂的吸允她的奶视频 | www国产精品内射 | 久久久久久久久久久久 | 日韩成人久久 | 国产边摸边吃奶边做爽视频 | 最近中文av字幕在线中文 | 岛国精品资源网站 | 九九九免费视频 | 国产人妖乱国产精品人妖 | 欧美在线日韩 | 黄av在线播放 | 少妇裸体淫交视频免费观看 | 欧美成人一区免费视频 | 久久艹精品视频 | 天天操夜夜拍 | 香蕉视频影院 | 国产精品有码 | 日韩免费观看av | 377p欧洲日本亚洲大胆噜噜 | 久久久久久久久久久国产 | 欧美精品一区二 | 搡女人真爽免费视频大全 | 中国女人内谢69xxxxⅹ视频 | 色一情一乱一乱一区99av白浆 | 成人做爰www看视频软件 | 天干夜天干天天天爽视频 | 久久久久成人片免费观看蜜芽 | 公妇乱淫视频 | 黑人操亚洲人 | 成人国产精品久久久春色 | 在线看片网址 | 日韩欧美成人一区 | 日本狂喷奶水在线播放212 | 成人午夜av| 经典av番号 | √天堂资源地址中文在线 | xxnn成人免费视频 | 欧美午夜精品一区二区三区电影 | 天堂网av2014| 国产一级片网站 | 中文字幕第一页亚洲 | 日韩伊人久久 | 欧美成人精品欧美一级 | 欧美刺激性大交 | 午夜在线观看影院 | 天堂va蜜桃一区二区三区 | av一二三区 | 黑白配高清在线观看免费版中文 | 久久伊人五月天 | 另类天堂网不卡另类系列 | 欧美深夜在线 | 日韩视频在线视频 | av大片网站| 亚洲精品国产一区黑色丝袜 | 亚洲精品无播放器在线播放 | 99精品视频免费热播在线观看 | 99国内精品久久久久久久 | 亚洲成av人片一区二区 | 日韩激情无码免费毛片 | 青青成人网 | 91干视频| 91精产品一区一区三区40p | 色婷婷综合久久久中文字幕 | 久久草草影视免费网 | 无码一区二区波多野结衣播放搜索 | 国产第8页 | 57pao国产成永久免费视频 | 性大毛片视频 | 国产九九九精品 | 涩爱av蜜臀夜夜嗨av | 亚洲成在人网站无码天堂 | www.17c.com喷水少妇 | 免费av网站在线观看 | 精品久久久久久乱码天堂 | av男女| 天堂在线观看av | 亚洲国产av无码精品无广告 | 日本少妇做爰大尺裸体网站 | 亚洲韩国精品无码一区二区三区 | 日本黄色生活片 | 国产成人在线网站 | 毛片导航| 国产黑丝视频 | 久草青青视频 | 欧美极品jiizzhd欧美暴力 | 夜夜穞天天穞狠狠穞 | 国产精品―色哟哟 | 免费国产自产一区二区三区四区 | 日本少妇做爰免费视频软件 | 波多野久久 | 午夜三级在线观看 | 女人被狂躁60分钟视频 | jizz日本18 | 午夜黄色网| 日韩美女一级片 | 97综合| 成人毛片视频网站 | 国产精品久久久久久久久大全 | 亚州av网站 | 国产婷婷色一区二区三区 | 欧美xxxxx少妇 | 97香蕉视频| 亚洲欧美日韩精品久久亚洲区 | 成人做爰视频www网站小优视频 | 97香蕉久久国产在线观看 | 久久久美女视频 | 成人免费视频网址 | 欧美一级艳片视频免费观看 | 91精品国产综合久久久久久蜜臀 | 久久久久久97免费精品一级小说 | 中文字幕在线亚洲精品 | 日本欧美久久久免费播放网 | 国产精品久久久国产偷窥 | www黄色国产 | 最新日韩av | 亚洲无av在线中文字幕 | 欧美aa在线观看 | 欧美做爰猛烈床戏大尺度 | 精品视频在线播放 | 最新国产麻豆aⅴ精品无码 天天摸天天透天天添 | 亚洲欧美激情另类 | 亚洲国产另类久久久精品网站 | 亚洲欧洲日本一区二区三区 | 在线视频网站www色 300部国产真实乱 | 欧美性狂猛xxxxxbbbbb | 欧美交换配乱吟粗大在线观看 | 日韩高清在线观看 | 日日夜夜综合网 | 久久影库| 中文字幕专区高清在线观看 | 人妻有码中文字幕 | 久久久久精 | 夜夜天天干 | 91在线精品一区二区 | 免费的色视频 | jizz性欧美10 | 久久精品夜夜夜夜夜久久 | 欧美性猛交xxxx富婆 | 69一区二区| 天天干夜夜草 | 黑人一区二区三区四区五区 | 搐搐国产丨区2区精品av | 亚洲一区视频网站 | 欧美经典片免费观看大全 | 精品国内自产拍在线观看 | 国产精品久久久久久人妻精品 | 色播在线观看 | 91亚洲精品国产成人 | 欧美极品少妇无套实战 | 老牛影视免费一区二区 | 成人啪啪色婷婷久 | 成人精品国产免费网站 | 久久精品中文 | 国产精品自拍区 | 免费大黄网站 | 性视频免费的视频大全2015年 | 国产精品毛片在线完整版 | 日本一区二区三区视频在线播放 | 国产综合久久久久久鬼色 | 国产一区两区 | 欧美一区二区三区激情 | 天天躁天天狠天天透 | www色国产| 在线观看亚洲成人 | 在线网站av| 国产欧美一区二区精品忘忧草 | 国产一区二区三区视频播放 | 中国中文字幕伦av在线看片 | 日日躁夜夜躁狠狠躁aⅴ蜜 日日躁夜夜躁狠狠躁超爽2001 | 超碰人人射 | 久久99色| 操操操操操操 | 国产精品99久久久精品无码 | 少妇精品导航 | 国产午夜精品一区二区 | 爱爱视频网站 | 日本黄樱花超清视频 | av中文在线天堂 | 国产成人午夜精华液 | 久久久久国产精品一区 | 高h破瓜受孕龙精 | 永久免费在线 | 天天插天天干 | 免费观看成人鲁鲁鲁鲁鲁视频 | 在线亚洲综合 | 美女视频黄a视频全免费 | 久久人妻无码一区二区 | 欧美成人精品高清视频在线观看 | 国产农村妇女高潮大叫 | 国产精品九九 | 天天操天天射天天爽 | 日本中文字幕网站 | 国产亚洲精品久久久久久打不开 | 亚洲综合欧美色五月俺也去 | 日本高潮视频 | 无套内射在线无码播放 | 超h高h肉h文教室学长男男视频 | 久久免费视频播放 | 91精品国产手机 | 天使萌一区二区三区免费观看 | 日日噜噜夜夜狠狠视频免费 | 在线成人欧美 | 日韩av综合网 | 久久免费精品视频 | 韩国三级网址 | 日韩精品一区二区三区中文无码 | 在线观看国产网站 | 久久久综合视频 | 波多野结衣久久久久 | www.激情网| 秋霞免费av | 亚洲欧美在线免费观看 | 国产三区在线成人av | 色噜噜狠狠狠综合曰曰曰 | 噜噜噜亚洲色成人网站 | 国产极品91| 91久久国产综合久久91 | 久久中文字幕在线 | 亚洲网站在线看 | 人人看人人射 | 丰满蕾丝乳罩少妇呻视频 | 国产精品久久久久久影视 | 日韩av首页 | 天天射天天操天天干 | 久久这里精品国产99丫e6 | 国产视频手机在线观看 | 无码人妻av一二区二区三区 | 免费看黄a级毛片 | 香蕉影院在线观看 | 五月天精品一区二区三区 | 亚洲 日韩 激情 无码 中出 | 97免费在线观看 | 国产女人高潮合集特写 | 亚洲精品主播一区二区三区 | 午夜xxx | 毛片一毛片二毛片三国产片 | 婷婷色中文字幕综合在线 | 香蕉在线看 | 国产一级美女视频 | 男人j进入女人j内部免费网站 | 免费观看国产精品 | 国产精品自产拍高潮在线观看 | 精品国产一区二区三区久久久 | 精品久久一二三区 | 欧美综合成人 | 日本免费视频在线观看 | 久久久久久久久久久国产 | 午夜视频在线网站 | 少妇性xxxx性开放黄色 | 插插网站| 日韩视频在线播放 | 啪啪福利| 秋霞一区二区 | 中文字幕乱码人妻一区二区三区 | 91在线视频国产 | 99精品国产高清在线观看 | av爱爱爱| 中文字幕一区二区三区乱码图片 | 欧美性欧美zzzzzzzzz | 国产美女自拍视频 | 国产爽爽久久影院潘金莲 | 亚洲欧美综合网 | 亚洲乱码国产乱码精品精大量 | 亚洲天堂免费在线 | 美女视频黄的全免费视频网站 | 免费视频99| 黑人巨大精品欧美一区二区免费 | 找av导航入口 | 亚洲色图制服诱惑 | 性夜影院午夜看片 | 国产一级伦理片 | 伊人伊人鲁 | 中文字幕一区二区三区乱码不卡 | 亚洲精品字幕在线观看 | 国产精品久久久久久久久久久久久 | 小鲜肉自慰网站 | 色婷婷丁香 | 中文人妻熟女乱又乱精品 | 久久视频这里只有精品 | 亚洲乱亚洲乱妇无码麻豆 | 偷拍呻吟高潮91 | av国产网站| 日本一区二区更新不卡 | 91狠狠干 | 蜜臀久久99精品久久久久宅男 | 天天看片中文字幕 | 中文字幕1区| 久久久久久久久国产精品 | 国产精品成人一区二区网站软件 | 国产色a在线观看 | 日本不卡视频一区 | 亚洲 欧美 日韩 国产综合 在线 | 在线视频欧美亚洲 | 无码国产精品一区二区色情男同 | 在线播放av网址 | 国产一级视频在线 | 日本大肚子孕妇交xxx | 理论片午午伦夜理片影院 | 国产乱子伦视频一区二区三区 | 91亚色视频| 精品国产91亚洲一区二区三区www | 亚洲精品国产a久久久久久 亚洲精品国产crm | 成人免费的视频 | 国精品人妻无码一区二区三区蜜柚 | 88久久精品无码一区二区毛片 | 刺激性视频黄页 | 51免费看成人啪啪片 | 精品人妻少妇一区二区三区 | 二个男人躁我一个视频 | 9l视频自拍九色9l视频大全 | 青青伊人国产 | 精品人妻中文字幕有码在线 | 精品国精品无码自拍自在线 | 思思久久99热久久精品66 | 992人人草| 亚洲精品毛片一级91精品 | 美女黄色一级片 | 色呦呦在线免费观看 | 一个人看的视频在线观看www | 国产精品白嫩极品美女 | 国产一区二区三区在线观看视频 | 粗大的内捧猛烈进出在线视频 | 第一福利在线观看 | 国产精品wwwwww | 中文字幕一区二区免费 | 男人天堂一区 | 黄色大片在线看 | 亚洲国产美女久久久久 | 成年人在线视频观看 | 四虎8848精品| 久久人人爽av亚洲精品天堂 | 久久香蕉国产 | 久久久av波多野一区二区 | 青青草视频 | 一本色道无码不卡在线观看 | 狠狠狠狠狠 | а 天堂 在线 | 网红av在线| 香蕉视频在线观看网站 | 午夜精品成人 | 久久精品无码一区二区日韩av | aaa级吃奶摸下免费视频 | 女性向av免费网站 | jizz丰满的韩国女人 | 成人av免费在线 | 免费国产在线观看麻豆 | 小莹浴室激情2 | 国产美女亚洲精品久久久毛片小说 | 精品久久久久久 | 亚洲精品爱爱 | 国产精品 欧美激情 | 日本精品网站 | 青青草精品 | 粉嫩一区二区三区色综合 | 成人18视频 | 不卡的日韩av | 精品人妻系列无码专区 | 久久久久有精品国产麻豆 | 天天草天天草 | 日韩一区二区中文字幕 | 国产精品欧美一区二区三区不卡 | 波多野吉衣一区二区 | 欧洲美女tickling免费网站 | 亚洲女同性ⅹxx关女同网站 | 天天躁狠狠躁狠狠躁性色牛牛影视 | 国产无吗一区二区三区在线欢 | 天堂网资源 | 日韩欧美一区二区三区免费观看 | 欧美性猛交xxxⅹ乱大交小说一 | 国产精品一区二区三区四 | 日本添下边视频全过程 | 国产免费网站在线观看 | 肥老熟妇伦子伦456视频 | 免费小视频在线观看 | 日本aaaa级毛片在线看 | 黄片毛片在线观看 | 国产欧美日韩小视频 | www.波多野结衣.com | 69式囗交免费视频 | 国产乱对白刺激视频 | 日本三级吃奶头添泬 | 久久人人爽人人爽人人片av不 | 中文字幕二区在线观看 | 国产亚洲视频一区 | 亚洲 自拍 都市 欧美 小说 | 国产精品9999久久久久仙踪林 | 久草高清视频 | 中文文字幕文字幕肉岳 | 日韩精品久久一区二区 | 777久久久| 中文字幕在线视频精品 | 日日夜夜网 | 97性视频 | 国产精品久久久久影院老司 | 亚洲日本japanese丝袜 | 日韩精品专区在线影院重磅 | 日本毛片在线观看 | 国产性猛交xx乱 | 欧美怡红院免费全部视频 | 中文在线字幕免费观看电 | 国产综合精品一区二区三区 | 欧美三级韩国三级日本一级 | 久久天堂| 亚洲精品欧美综合二区 | 亚洲国产一区二区在线 | 免费看日本zzzwww色 | 国产成人愉拍精品久久 | 深夜视频在线 | 久久精品波多野结衣 | 欧美gv在线观看 | 日韩欧美tⅴ一中文字暮 | 久久久黄色一级片 | 亚洲精品乱码久久久久久蜜桃不卡 | 男人的天堂日本 | 377p粉嫩日本欧洲色噜噜 | 国产一区二区三区视频播放 | 波多野结衣网站 | 久久久亚洲麻豆日韩精品一区三区 | 午夜无码免费福利视频网址 | 国产日韩免费视频 | 在线www| 国产激情久久久久影院老熟女 | 免费的黄色小视频 | 少妇系列之白嫩人妻 | 成年人的黄色片 | 欧美激情一二区 | 亚洲精品视频三区 | 亚洲精品人成无码中文毛片 | 国产黄大片在线观看画质优化 | 欧美 亚洲 另类 偷偷 自拍 | 日韩中文在线字幕 | 男女裸体影院高潮 | 色人阁五月天 | 久久av无码精品人妻系列 | 成人性生交大片免费视频 | 高h禁伦亲女1v2 | 强开小嫩苞一区二区三区图片 | 性欧美一级 | 色在线视频观看 | 国产新婚夫妇白天做个爱 | 黄色一级免费片 | 噼里啪啦动漫在线观看 | jzzijzzij亚洲成熟少妇18 jzzijzzij亚洲农村妇女 | 久久不射网站 | 亚洲风情av| 性色av 一区二区三区 | 五月激情六月丁香激情天堂 | 国产午夜在线播放 | 天堂av中文网 | 国产999在线| 国产精品美女www爽爽爽三炮 | 少妇大叫太大太粗太爽了a片小说 | 亚洲作爱网| 国产精品乱码久久久 | 亚洲69视频 | 欧美中文 | 成人三级k8经典网 | 天天躁狠狠躁狠狠躁夜夜躁68 | 国产女人高潮抽搐叫床涩爱小说 | 一二三四日本高清社区5 | 日韩狠狠操 | 色www永久免费视频 亚洲成av人在线观看天堂无码 | 无码人妻精品一区二区三区66 | 与子敌伦刺激对白播放 | 国产白嫩初高中害羞小美女 | h视频免费在线观看 | 哺乳期av | 寂寞寡妇让我吃奶 | 狠狠色狠狠色很很综合很久久 | 在线观看福利网站 | 国产成人在线免费观看 | 精品在线免费视频 | 欧美一级做a爰片免费视频 欧美一级做性受免费大片免费 | 国产三级午夜理伦三级连载时间 | 黄色特级毛片 | 91爱啪| 久久久xxxx | 国语对白做受欧美 | 亚洲欧美成人在线 | av毛片不卡 | 国产免费一区二区三区四区五区 | 亚洲天堂偷拍 | 超碰男人 | 国产乱人视频 | a天堂在线| 成品片a免人视频 | 最新国产精品自拍 | 懂色av中文字幕一区二区三区 | 中文字幕第一页在线视频 | 午夜精品久久久久久久久久久久 | 欧美三根一起进三p | 91岛国| xxxx性xx另类ⅹ亚洲hd | 日本无遮挡吸乳呻吟免费视频网站 | 好吊色这里只有精品 | 午夜婷婷网 | 久久网av| 色呦在线 | 成人小视频免费在线观看 | 天天曰 | 91情侣视频| 国产精品成年片在线观看 | 91国偷自产一区二区三区蜜臀 | 日韩免费高清视频网站 | 国产区精品一区二区不卡中文 | 毛片免费全部无码播放 | 国产精品高潮久久 | 亚洲色偷偷男人的天堂 | 欧美疯狂做受xxxx高潮 | 国产精品女人精品久久久天天 | 日本成人久久 | 亚洲欧美一区在线 | 少妇太爽了太深了太硬了 | 日本亚洲欧洲无免费码在线 | 国产欧美另类久久久精品图片 | 成人毛片视频网站 | 免费少妇荡乳情欲视频 | 国产在线视频资源 | 武侠古典av | 拔擦8x成人一区二区三区 | 激情在线网站 | 中文字幕亚洲无线码在线一区 | a级高清毛片| 国产精品免费看 | 中文字幕有码av | 国内精品久久久久久中文字幕 | 免费成年人视频在线观看 | 91精品日产一二三区乱码 | 乡村乱淫 | 中文字幕1区2区 | 一区二区视频免费在线观看 | 综合久久中文字幕 | 亚洲人成色777777老人头 | 成人美女免费网站视频 | 97久久综合区小说区图片区 | 免费观看成人 | www插插插无码视频网站 | 精品人妻伦九区久久aaa片69 | 中文字幕人成人乱码亚洲影视的特点 | 久久久久久久久久久久久久久久久久 | a级黄色片 | 国产成人精品综合在线观看 | 222aaa免费国产在线观看 | 欧日韩在线 | 亚洲区av| 妺妺窝人体色www在线观看 | 欧美成人中文字幕 | 国产极品美女高潮抽搐免费网站 | 国产日本欧美在线 | 九九热精品视频在线观看 | www欧美视频 | 亚洲愉拍99热成人精品 | 一二级毛片| 丰满少妇又爽又紧又丰满在线观看 | 日韩精品久久无码中文字幕 | 精品国产麻豆免费人成网站 | 成人精品啪啪欧美成 | 国产91对白叫床清晰播放 | 国产午夜成人免费看片 | 欧美三日本三级少妇三 | 久久影视av| 高潮毛片无遮挡高清免费视频 | 精品一区二区三区波多野结衣 | 精品国产中文字幕 | 亚洲精品无码国产 | 国产精品毛片一区 | 国产乱配视频免费观看 | av手机天堂网| 亚洲人成人7777在线播放 | 日本少妇爱做按摩xxxⅹ | 精品国产乱码久久久久久免费 | 亚洲精品欧美二区三区中文字幕 | 免费女人18a级毛片视频 | 不用播放器av | 啪啪导航 | 美女在线免费视频 | 日本欧美在线 | 亚洲精品一区中文字幕乱码 | 拔萝卜在线视频免费观看 | 成人免费xxxxx在线观看 | 中文幕无线码中文字蜜桃 | 国产av国片精品jk制服丝袜 | 亚洲精品久久久久一区二区三区 | 一本色道久久hezyo加勒比 | 天天看黄色 | 亚洲少妇精品 | 亚洲小说图区综合在线 | 国产免费又硬又黄又爽的视频喷水 | 99精品视频免费在线观看 | 亚洲欧洲自拍拍偷精品 美利坚 | 亚洲欧洲美洲无码精品va | 九九九九九九九伊人 | 欧美无马| 国产福利姬喷水福利在线观看 | 天天操天天操天天操天天操天天操 | 国产精品久久久久9999 | 国产男女视频在线观看 | 女人张开腿让男人桶爽 | 亚洲另类视频 | 国产黑丝91 | 极品白嫩丰满少妇无套 | 毛片官网 | 欧美激情二区三区 | 久久久性视频 | 国产亚洲精品久久久久婷婷瑜伽 | 毛片在线观看网站 | va视频在线观看 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品