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

歷史上的今天

今天是:2024年09月18日(星期三)

正在發(fā)生

2019年09月18日 | 第18章 SysTick—系統(tǒng)定時器—零死角玩轉(zhuǎn)STM32-F429系列

發(fā)布者:SereneSoul55 來源: eefocus關(guān)鍵字:SysTick  系統(tǒng)定時器  STM32-F429系列 手機看文章 掃描二維碼
隨時隨地手機看文章

本章參考資料《 ARM Cortex?-M4F 技術(shù)參考手冊》-4.5 章節(jié)SysTick Timer(STK),和4.48章節(jié)SHPRx,其中STK這個章節(jié)有SysTick的簡介和寄存器的詳細(xì)描述。因為SysTick是屬于CM4內(nèi)核的外設(shè),有關(guān)寄存器的定義和部分庫函數(shù)都在core_cm4.h這個頭文件中實現(xiàn)。所以學(xué)習(xí)SysTick的時候可以參考這兩個資料,一個是文檔,一個是源碼。


18.1 SysTick簡介

SysTick—系統(tǒng)定時器是屬于CM4內(nèi)核中的一個外設(shè),內(nèi)嵌在NVIC中。系統(tǒng)定時器是一個24bit的向下遞減的計數(shù)器,計數(shù)器每計數(shù)一次的時間為1/SYSCLK,一般我們設(shè)置系統(tǒng)時鐘SYSCLK等于180M。當(dāng)重裝載數(shù)值寄存器的值遞減到0的時候,系統(tǒng)定時器就產(chǎn)生一次中斷,以此循環(huán)往復(fù)。


因為SysTick是屬于CM4內(nèi)核的外設(shè),所以所有基于CM4內(nèi)核的單片機都具有這個系統(tǒng)定時器,使得軟件在CM4單片機中可以很容易的移植。系統(tǒng)定時器一般用于操作系統(tǒng),用于產(chǎn)生時基,維持操作系統(tǒng)的心跳。


18.2 SysTick寄存器介紹

SysTick—系統(tǒng)定時有4個寄存器,簡要介紹如下。在使用SysTick產(chǎn)生定時的時候,只需要配置前三個寄存器,最后一個校準(zhǔn)寄存器不需要使用。


表 181 SysTick寄存器匯總

image.png

表 182 SysTick控制及狀態(tài)寄存器

image.png

表 183 SysTick 重裝載數(shù)值寄存器

image.png

表 184 SysTick當(dāng)前數(shù)值寄存器

image.png

表 185 SysTick校準(zhǔn)數(shù)值寄存器

image.png

系統(tǒng)定時器的校準(zhǔn)數(shù)值寄存器在定時實驗中不需要用到。有關(guān)各個位的描述這里引用手冊里面的英文版本,比較晦澀難懂,暫時不知道這個寄存器用來干什么。有研究過的朋友可以交流,起個拋磚引玉的作用。


18.3 SysTick定時實驗

利用SysTick產(chǎn)生1s的時基,LED以1s的頻率閃爍。


18.3.1 硬件設(shè)計

SysTick屬于單片機內(nèi)部的外設(shè),不需要額外的硬件電路,剩下的只需一個LED燈即可。


18.3.2 軟件設(shè)計

這里只講解核心的部分代碼,有些變量的設(shè)置,頭文件的包含等并沒有涉及到,完整的代碼請參考本章配套的工程。我們創(chuàng)建了兩個文件:bsp_SysTick.c和bsp_ SysTick.h文件用來存放SysTick驅(qū)動程序及相關(guān)宏定義,中斷服務(wù)函數(shù)放在stm32f4xx_it.h文件中。


1.    編程要點

1、設(shè)置重裝載寄存器的值


2、清除當(dāng)前數(shù)值寄存器的值


3、配置控制與狀態(tài)寄存器


2.    代碼分析

SysTick 屬于內(nèi)核的外設(shè),有關(guān)的寄存器定義和庫函數(shù)都在內(nèi)核相關(guān)的庫文件core_cm4.h中。


SysTick配置庫函數(shù)

代碼 181SysTick配置庫函數(shù)


1 __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)


2 {


3 // 不可能的重裝載值,超出范圍


4 if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) {


5 return (1UL);


6 }


7


8 // 設(shè)置重裝載寄存器


9 SysTick->LOAD = (uint32_t)(ticks - 1UL);


10


11 // 設(shè)置中斷優(yōu)先級


12 NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL);


13


14 // 設(shè)置當(dāng)前數(shù)值寄存器


15 SysTick->VAL = 0UL;


16


17 // 設(shè)置系統(tǒng)定時器的時鐘源為AHBCLK=180M


18 // 使能系統(tǒng)定時器中斷


19 // 使能定時器


20 SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |


21 SysTick_CTRL_TICKINT_Msk |


22 SysTick_CTRL_ENABLE_Msk;


23 return (0UL);


24 }


用固件庫編程的時候我們只需要調(diào)用庫函數(shù)SysTick_Config()即可,形參ticks用來設(shè)置重裝載寄存器的值,最大不能超過重裝載寄存器的值2^24,當(dāng)重裝載寄存器的值遞減到0的時候產(chǎn)生中斷,然后重裝載寄存器的值又重新裝載往下遞減計數(shù),以此循環(huán)往復(fù)。緊隨其后設(shè)置好中斷優(yōu)先級,最后配置系統(tǒng)定時器的時鐘為180M,使能定時器和定時器中斷,這樣系統(tǒng)定時器就配置好了,一個庫函數(shù)搞定。


SysTick_Config()庫函數(shù)主要配置了SysTick中的三個寄存器:LOAD、VAL和CTRL,有關(guān)具體的部分看代碼注釋即可。


配置SysTick中斷優(yōu)先級

在SysTick_Config()庫函數(shù)還調(diào)用了固件庫函數(shù)NVIC_SetPriority()來配置系統(tǒng)定時器的中斷優(yōu)先級,該庫函數(shù)也在core_m4.h中定義,原型如下:


1 __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)


2 {


3 if ((int32_t)IRQn < 0) {


4 SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] =


5 (uint8_t)((priority << (8 - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);


6 } else {


7 NVIC->IP[((uint32_t)(int32_t)IRQn)] =


8 (uint8_t)((priority << (8 - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);


9 }


10 }


因為SysTick屬于內(nèi)核外設(shè),跟普通外設(shè)的中斷優(yōu)先級有些區(qū)別,并沒有搶占優(yōu)先級和子優(yōu)先級的說法。在STM32F429中,內(nèi)核外設(shè)的中斷優(yōu)先級由內(nèi)核SCB這個外設(shè)的寄存器:SHPRx(x=1.2.3)來配置。有關(guān)SHPRx寄存器的詳細(xì)描述可參考《Cortex-M4內(nèi)核編程手冊》4.4.8章節(jié)。下面我們簡單介紹下這個寄存器。


SPRH1-SPRH3是一個32位的寄存器,但是只能通過字節(jié)訪問,每8個字段控制著一個內(nèi)核外設(shè)的中斷優(yōu)先級的配置。在STM32F429中,只有位7:3這高四位有效,低四位沒有用到,所以內(nèi)核外設(shè)的中斷優(yōu)先級可編程為:0~15,只有16個可編程優(yōu)先級,數(shù)值越小,優(yōu)先級越高。如果軟件優(yōu)先級配置相同,那就根據(jù)他們在中斷向量表里面的位置編號來決定優(yōu)先級大小,編號越小,優(yōu)先級越高。


表 186 系統(tǒng)異常優(yōu)先級字段

image.png

如果要修改內(nèi)核外設(shè)的優(yōu)先級,只需要修改下面三個寄存器對應(yīng)的某個字段即可。

圖 181 SHPR1寄存器

圖 182 SHPR2寄存器

圖 183 SHPR3寄存器


在系統(tǒng)定時器中,配置優(yōu)先級為(1UL << __NVIC_PRIO_BITS) - 1UL),其中宏__NVIC_PRIO_BITS為4,那計算結(jié)果就等于15,可以看出系統(tǒng)定時器此時設(shè)置的優(yōu)先級在內(nèi)核外設(shè)中是最低的。


1 // 設(shè)置系統(tǒng)定時器中斷優(yōu)先級


2 NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL);


但是,問題來了,剛剛我們只是學(xué)習(xí)了內(nèi)核的外設(shè)的優(yōu)先級配置。如果我同時使用了systick和片上外設(shè)呢?而且片上外設(shè)也剛好需要使用中斷,那systick的中斷優(yōu)先級跟外設(shè)的中斷優(yōu)先級怎么設(shè)置?會不會因為systick是內(nèi)核里面的外設(shè),所以它的中斷優(yōu)先級就一定比內(nèi)核之外的外設(shè)的優(yōu)先級高?


從《STM32中斷應(yīng)用概覽》這章我們知道,外設(shè)在設(shè)置中斷優(yōu)先級的時候,首先要分組,然后設(shè)置搶占優(yōu)先級和子優(yōu)先級。而systick這類內(nèi)核的外設(shè)在配置的時候,只需要配置一個寄存器即可,取值范圍為0~15。既然配置方法不同,那如何區(qū)分兩者的優(yōu)先級?下面舉例說明。


比如配置一個外設(shè)的中斷優(yōu)先級分組為2,搶占優(yōu)先級為1,子優(yōu)先級也為1,systick的優(yōu)先級為固件庫默認(rèn)配置的15。當(dāng)我們比較內(nèi)核外設(shè)和片上外設(shè)的中斷優(yōu)先級的時候,我們只需要抓住NVIC的中斷優(yōu)先級分組不僅對片上外設(shè)有效,同樣對內(nèi)核的外設(shè)也有效。我們把systick的優(yōu)先級15轉(zhuǎn)換成二進(jìn)制值就是1111(0b),又因為NVIC的優(yōu)先級分組2,那么前兩位的11(0b)就是3,后兩位的11(0b)也是3。無論從搶占還是子優(yōu)先級都比我們設(shè)定的外設(shè)的優(yōu)先級低。如果當(dāng)兩個的軟件優(yōu)先級都配置成一樣,那么就比較他們在中斷向量表中的硬件編號,編號越小,優(yōu)先級越高。


SysTick初始化函數(shù)

代碼 182 SysTick初始化函數(shù)


1 /**


2 * @brief 啟動系統(tǒng)滴答定時器 SysTick


3 * @param 無


4 * @retval 無


5 */


6 void SysTick_Init(void)


7 {


8 /* SystemFrequency / 1000 1ms中斷一次


9 * SystemFrequency / 100000 10us中斷一次


10 * SystemFrequency / 1000000 1us中斷一次


11 */


12 if (SysTick_Config(SystemCoreClock / 100000)) {


13 /* Capture error */


14 while (1);


15 }


16 }


SysTick初始化函數(shù)由用戶編寫,里面調(diào)用了SysTick_Config()這個固件庫函數(shù),通過設(shè)置該固件庫函數(shù)的形參,就決定了系統(tǒng)定時器經(jīng)過多少時間就產(chǎn)生一次中斷。


SysTick中斷時間的計算

SysTick定時器的計數(shù)器是向下遞減計數(shù)的,計數(shù)一次的時間TDEC=1/CLKAHB,當(dāng)重裝載寄存器中的值VALUELOAD減到0的時候,產(chǎn)生中斷,可知中斷一次的時間TINT=VALUELOAD * TDEC中斷= VALUELOAD/CLKAHB,其中CLKAHB =180MHZ。如果設(shè)置為180,那中斷一次的時間TINT=180/180M=1us。不過1us的中斷沒啥意義,整個程序的重心都花在進(jìn)出中斷上了,根本沒有時間處理其他的任務(wù)。


SysTick_Config(SystemCoreClock / 100000))


SysTick_Config()的形我們配置為SystemCoreClock / 100000=180M/100000=1800,從剛剛分析我們知道這個形參的值最終是寫到重裝載寄存器LOAD中的,從而可知我們現(xiàn)在把SysTick定時器中斷一次的時間TINT=1800/180M=10us。


SysTick定時時間的計算

當(dāng)設(shè)置好中斷時間TINT后,我們可以設(shè)置一個變量t,用來記錄進(jìn)入中斷的次數(shù),那么變量t乘以中斷的時間TINT就可以計算出需要定時的時間。


SysTick定時函數(shù)

現(xiàn)在我們定義一個微秒級別的延時函數(shù),形參為nTime,當(dāng)用這個形參乘以中斷時間TINT就得出我們需要的延時時間,其中TINT我們已經(jīng)設(shè)置好為10us。關(guān)于這個函數(shù)的具體調(diào)用看注釋即可。


1 /**


2 * @brief us延時程序,10us為一個單位


3 * @param


4 * @arg nTime: Delay_us( 1 ) 則實現(xiàn)的延時為 1 * 10us = 10us


5 * @retval 無


6 */


7 void Delay_us(__IO u32 nTime)


8 {


9 TimingDelay = nTime;


10


11 while (TimingDelay != 0);


12 }


 


函數(shù)Delay_us()中我們等待TimingDelay為0,當(dāng)TimingDelay為0的時候表示延時時間到。變量TimingDelay在中斷函數(shù)中遞減,即SysTick每進(jìn)一次中斷即10us的時間TimingDelay遞減一次。


SysTick中斷服務(wù)函數(shù)

1 void SysTick_Handler(void)


2 {


3 TimingDelay_Decrement();


4 }


中斷復(fù)位函數(shù)調(diào)用了另外一個函數(shù)TimingDelay_Decrement(),原型如下:


1 /**


2 * @brief 獲取節(jié)拍程序


3 * @param 無


4 * @retval 無


5 * @attention 在 SysTick 中斷函數(shù) SysTick_Handler()調(diào)用


6 */


7 void TimingDelay_Decrement(void)


8 {


9 if (TimingDelay != 0x00) {


10 TimingDelay--;


11 }


12 }


TimingDelay的值等于延時函數(shù)中傳進(jìn)去的nTime的值,比如nTime=100000,則延時的時間等于100000*10us=1s。


主函數(shù)

1 int main(void)


2 {


3 /* LED 端口初始化 */


4 LED_GPIO_Config();


5


6 /* 配置SysTick 為10us中斷一次,時間到后觸發(fā)定時中斷,


7 *進(jìn)入stm32fxx_it.c文件的SysTick_Handler處理,通過數(shù)中斷次數(shù)計時


8 */


9 SysTick_Init();


10


11 while (1) {


12


13 LED_RED;


14 Delay_us(100000); // 10000 * 10us = 1000ms


15


16 LED_GREEN;


17 Delay_us(100000); // 10000 * 10us = 1000ms


18


19 LED_BLUE;


20 Delay_us(100000); // 10000 * 10us = 1000ms


21 }


22 }


主函數(shù)中初始化了LED和SysTick,然后在一個while循環(huán)中以1s的頻率讓LED閃爍。


上面的實驗,我們是使用了中斷,而且經(jīng)過多個函數(shù)的調(diào)用,還使用了全局變量,理解起來挺費勁的,其實還有另外一種更簡潔的寫法。我們知道,systick的counter從reload值往下遞減到0的時候,CTRL寄存器的位16:countflag會置1,且讀取該位的值可清0,所有我們可以使用軟件查詢的方法來實現(xiàn)延時。具體代碼見代碼 183和代碼 184,我敢肯定這樣的寫法,初學(xué)者肯定會更喜歡,因為它直接,套路淺。


代碼 183 systick 微秒級延時


1 void SysTick_Delay_Us( __IO uint32_t us)


2 {


3 uint32_t i;


4 SysTick_Config(SystemCoreClock/1000000);


5


6 for (i=0; i

7 // 當(dāng)計數(shù)器的值減小到0的時候,CRTL寄存器的位16會置1


8 while ( !((SysTick->CTRL)&(1<<16)) );


9 }


10 // 關(guān)閉SysTick定時器


11 SysTick->CTRL &=~SysTick_CTRL_ENABLE_Msk;


12 }


 


代碼 184 systick 毫秒級延時


1 void SysTick_Delay_Ms( __IO uint32_t ms)


2 {


3 uint32_t i;


4 SysTick_Config(SystemCoreClock/1000);


5


6 for (i=0; i

7 // 當(dāng)計數(shù)器的值減小到0的時候,CRTL寄存器的位16會置1


8 // 當(dāng)置1時,讀取該位會清0


9 while ( !((SysTick->CTRL)&(1<<16)) );


10 }


11 // 關(guān)閉SysTick定時器


12 SysTick->CTRL &=~ SysTick_CTRL_ENABLE_Msk;


13 }


另外一種更簡潔的定時編程

在這兩個微秒和毫秒級別的延時函數(shù)中,我們還是調(diào)用了SysTick_Config這個固件庫函數(shù),有關(guān)這個函數(shù)的說明具體見代碼 185。配套代碼注釋理解即可。其中SystemCoreClock是一個宏,大小為72000000,如果不想使用這個宏,也可以直接改成數(shù)字。


代碼 185 systick 配置函數(shù)


1 // 這個固件庫函數(shù)在 core_cm3.h中


2 static __INLINE uint32_t SysTick_Config(uint32_t ticks)


3 {


4 // reload 寄存器為24bit,最大值為2^24


5 if (ticks > SysTick_LOAD_RELOAD_Msk) return (1);


6


7 // 配置 reload 寄存器的初始值


8 SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1;


9


10 // 配置中斷優(yōu)先級為 1<<4 -1 = 15,優(yōu)先級為最低


11 NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);


12


13 // 配置 counter 計數(shù)器的值


14 SysTick->VAL = 0;


15


16 // 配置systick 的時鐘為 72M


17 // 使能中斷


18 // 使能systick


19 SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |


20 SysTick_CTRL_TICKINT_Msk |


21 SysTick_CTRL_ENABLE_Msk;


22 return (0);


23 }

關(guān)鍵字:SysTick  系統(tǒng)定時器  STM32-F429系列 引用地址:第18章 SysTick—系統(tǒng)定時器—零死角玩轉(zhuǎn)STM32-F429系列

上一篇:第19章 通訊的基本概念—零死角玩轉(zhuǎn)STM32-F429系列
下一篇:第17章 EXTI—外部中斷/事件控制器—零死角玩轉(zhuǎn)STM32-F429系列

0

推薦閱讀

近日,臺達(dá)宣布攜手天津某醫(yī)院,采用臺達(dá)DPH系列模塊化UPS解決方案,共同打造醫(yī)院新數(shù)據(jù)中心高效基礎(chǔ)設(shè)施環(huán)境,保障其新數(shù)據(jù)中心用電環(huán)境達(dá)到業(yè)界領(lǐng)先水平,為其實現(xiàn)智慧醫(yī)療提供動力保障。臺達(dá)推薦采用的DPH系列模塊化UPS,是一款久經(jīng)市場考驗的明星產(chǎn)品,已在國內(nèi)外屢獲獎項,包括俄羅斯國際貿(mào)易部能源局“節(jié)能獎”(Save Energy!)評選的“年度技術(shù)”獎...
智能手機、智能平板電腦、智能電視、智能眼鏡……幾乎目前生活中所能運用到的東西,都有智能屬性在其中,智能社交、智能家居、智能穿戴、智能購物、智能辦公、智能出行,六大智能正在構(gòu)成我們的智能生活,殊不知以往出現(xiàn)在電影中的場景逐漸實現(xiàn)。智能生活當(dāng)前熱度最高的是什么?恐怕智能汽車要名列前茅,技術(shù)難度最大,投入也非常之高,而隨著國務(wù)院正式公...
熟能生巧,按照規(guī)則多創(chuàng)建幾次!說在前面的話:一直以來想使用IAR開發(fā)個項目,這次機會來了,公司要做個測試工裝,選的MCU是意法半導(dǎo)體的STM8S105系列芯片第一個想法就是放棄用爛的KEIL,嘗試使用IAR開發(fā)這個項目開發(fā)環(huán)境:Windows 7 專業(yè)版、IAR EW for STM8 3.11.1準(zhǔn)備工作:下載安裝EWSTM8,在我另一個隨筆已經(jīng)詳細(xì)寫了     下載STM8S標(biāo)準(zhǔn)外...
1、S3C2440處理器結(jié)構(gòu)S3C2440處理器的結(jié)構(gòu)如下圖所示,其核心單元為ARM9TDMI處理器核,主要包括16K的指令Cache和16K的數(shù)據(jù)Cache,以及分開的指令和數(shù)據(jù)MMU單元等。CP15為一個協(xié)處理器(Co-Processor)。通過AMBA2.0(Advanced Microcontroller Bus Architecture)總線接口與外部設(shè)備相連。IVA指Instruction Virtual Address,指令虛擬地址;DVA指Data...

史海拾趣

問答坊 | AI 解惑

KOMAT'SU工控觸摸屏

有塊大芯片[NEC D65802GNP11]查不到DATASHEET,有哪位高人樂意幫忙啊?…

查看全部問答∨

VXWORKS全局變量

各位大蝦好:     在使用Vxworks編程的時候使用的是多任務(wù)編程。有一個比較大的全局結(jié)構(gòu)變量。           我在一個任務(wù)中調(diào)用了該全局結(jié)構(gòu)變量。然后進(jìn)入了一個函數(shù)調(diào)用。在我調(diào)用該函數(shù)之前全局所有域 ...…

查看全部問答∨

隱藏系統(tǒng)中的鼠標(biāo)圖標(biāo)

各位兄弟; 如何用一個批處理文件來隱藏系統(tǒng)中的鼠標(biāo)圖標(biāo)啊?請指點一下。 多謝!…

查看全部問答∨

關(guān)于USB全速寫的怪問題??

本人做一個linux 圖象采集,然后全速寫入優(yōu)盤的小系統(tǒng),現(xiàn)在的問題是,在圖片采 集存儲的前20秒可以以每幀8秒的速度寫(每張圖片約150K) ,但是超過20秒后,速度明 顯下降(攝像頭和優(yōu)盤通過了一個usb hub 1.1連接到開發(fā)板同一usb口),基本為每秒 一幀, ...…

查看全部問答∨

WINCE 系統(tǒng)裁剪

  最近我買了一塊優(yōu)龍公司的DEMO板, 但我想對該硬件及WINCE 系統(tǒng)裁剪,我該怎么 裁剪軟件這塊呢, 能舉個例子嗎,或電子教程啦, 謝謝…

查看全部問答∨

電子圍欄具有怎樣的發(fā)展前景?電子圍欄的市場能持續(xù)多久?

聯(lián)騰葉志鋒     我們認(rèn)為國內(nèi)電子圍欄產(chǎn)品、行業(yè)的發(fā)展市場巨大,方興未艾,前景廣闊。一到二年后又會進(jìn)入一個動態(tài)平衡期,平衡期內(nèi)電子圍欄市場將趨于穩(wěn)定發(fā)展。     (1)市場前景分析:     自2000年起,我 ...…

查看全部問答∨

【求助】好急!!

我有一個程序,在一個電路里運行正常,而在另一個電路中P1口中斷卻進(jìn)不去,請問各位大俠這是什么緣故呢?有可能是那部分的硬件問題呢?謝謝!…

查看全部問答∨

2407仿真無法連接

請教各位大俠:我是2407的初學(xué)者,用的是AHDX510仿真器,硬件連接都顯示正常,但是打開CCS時顯示 NOT CONNECTED 請問這是什么原因啊?怎么解決呢? 謝謝各位!…

查看全部問答∨

節(jié)能減排 —— 終于想到“網(wǎng)絡(luò)”這個詞

    我的同事小白最近總是心事煩亂、緊張兮兮。用她的話說,就是:“每天睜眼就一腦門子‘官司’,八竿子打不著的事兒也老惦記著,神經(jīng)老是處于緊繃狀態(tài)!”而一回到家,她整個人就像個泄了氣的皮球,躺倒床上起不來了。  &nb ...…

查看全部問答∨

MSP430晶振布局要領(lǐng)

MSP430晶振布局要領(lǐng)…

查看全部問答∨
小廣播
添点儿料...
无论热点新闻、行业分析、技术干货……
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 太和县| 伊金霍洛旗| 光泽县| 荔波县| 静安区| 崇左市| 巴彦淖尔市| 黔东| 美姑县| 盐边县| 广州市| 金华市| 东城区| 恩施市| 韶关市| 苗栗县| 株洲市| 内黄县| 濮阳市| 石景山区| 陆川县| 宁化县| 台北县| 平阳县| 泸西县| 东丰县| 新竹县| 健康| 本溪| 满城县| 新余市| 盐亭县| 阿荣旗| 枞阳县| 陆川县| 章丘市| 云霄县| 长岭县| 河间市| 咸阳市| 临江市|