本章參考數據:《STM32F4xx 中文參考手冊》、《STM32F4xx規格書》、庫說明文檔《stm32f4xx_dsp_stdperiph_lib_um.chm》。
42.1 STM32的電源管理簡介
電源對電子設備的重要性不言而喻,它是保證系統穩定運行的基礎,而保證系統能穩定運行后,又有低功耗的要求。在很多應用場合中都對電子設備的功耗要求非常苛刻,如某些傳感器信息采集設備,僅靠小型的電池提供電源,要求工作長達數年之久,且期間不需要任何維護;由于智慧穿戴設備的小型化要求,電池體積不能太大導致容量也比較小,所以也很有必要從控制功耗入手,提高設備的續行時間。因此,STM32有專門的電源管理外設監控電源并管理設備的運行模式,確保系統正常運行,并盡量降低器件的功耗。
42.1.1 電源監控器
STM32芯片主要通過引腳VDD從外部獲取電源,在它的內部具有電源監控器用于檢測VDD的電壓,以實現復位功能及掉電緊急處理功能,保證系統可靠地運行。
1. 上電復位與掉電復位(POR與PDR)
當檢測到VDD的電壓低于閾值VPOR及VPDR時,無需外部電路輔助,STM32芯片會自動保持在復位狀態,防止因電壓不足強行工作而帶來嚴重的后果。見圖 421,在剛開始電壓低于VPOR時(約1.72V),STM32保持在上電復位狀態(POR,Power On Reset),當VDD電壓持續上升至大于VPOR時,芯片開始正常運行,而在芯片正常運行的時候,當檢測到VDD電壓下降至低于VPDR閾值(約1.68V),會進入掉電復位狀態(PDR,Power Down Reset)。
圖 421 POR與PDR
2. 欠壓復位(BOR)
POR與PDR的復位電壓閾值是固定的,如果用戶想要自行設定復位閾值,可以使用STM32的BOR功能(Brownout Reset)。它可以編程控制電壓檢測工作在表 421中的閾值級別,通過修改"選項字節"(某些特殊寄存器)中的BOR_LEV位即可控制閾值級別。其復位控制示意圖見圖 422。
表 421 BOR欠壓閾值等級
圖 422 BOR復位控制
3. 可編程電壓檢測器PVD
上述POR、PDR以及BOR功能都是使用其電壓閾值與外部供電電壓VDD比較,當低于工作閾值時,會直接進入復位狀態,這可防止電壓不足導致的誤操作。除此之外,STM32還提供了可編程電壓檢測器PVD,它也是實時檢測VDD的電壓,當檢測到電壓低于VPVD閾值時,會向內核產生一個PVD中斷(EXTI16線中斷)以使內核在復位前進行緊急處理。該電壓閾值可通過電源控制寄存器PWR_CSR設置。
使用PVD可配置8個等級,見表 422。其中的上升沿和下降沿分別表示類似圖 422中VDD電壓上升過程及下降過程的閾值。
表 422 PVD的閾值等級
42.1.2 STM32的電源系統
為了方便進行電源管理,STM32把它的外設、內核等模塊跟據功能劃分了供電區域,其內部電源區域劃分見圖 423。
圖 423 STM32的電源系統
從框圖了解到,STM32的電源系統主要分為備份域電路、內核電路以及ADC電路三部分,介紹如下:
備份域電路
STM32的LSE振蕩器、RTC、備份寄存器及備份SRAM這些器件被包含進備份域電路中,這部分的電路可以通過STM32的VBAT引腳獲取供電電源,在實際應用中一般會使用3V的鈕扣電池對該引腳供電。
在圖中備份域電路的左側有一個電源開關結構,它的功能類似圖 424中的雙二極管,在它的上方連接了VBAT電源,下方連接了VDD主電源(一般為3.3V),右側引出到備份域電路中。當VDD主電源存在時,由于VDD電壓較高,備份域電路通過VDD供電,當VDD掉電時,備份域電路由鈕扣電池通過VBAT供電,保證電路能持續運行,從而可利用它保留關鍵數據。
圖 424 雙二極管結構
調壓器供電電路
在STM32的電源系統中調壓器供電的電路是最主要的部分,調壓器為備份域及待機電路以外的所有數字電路供電,其中包括內核、數字外設以及RAM,調壓器的輸出電壓約為1.2V,因而使用調壓器供電的這些電路區域被稱為1.2V域。
調壓器可以運行在"運行模式"、"停止模式"以及"待機模式"。在運行模式下,1.2V域全功率運行;在停止模式下1.2V域運行在低功耗狀態,1.2V區域的所有時鐘都被關閉,相應的外設都停止了工作,但它會保留內核寄存器以及SRAM的內容;在待機模式下,整個1.2V域都斷電,該區域的內核寄存器及SRAM內容都會丟失(備份區域的寄存器及SRAM不受影響)。
ADC電源及參考電壓
為了提高轉換精度,STM32的ADC配有獨立的電源接口,方便進行單獨的濾波。ADC的工作電源使用VDDA引腳輸入,使用VSSA作為獨立的地連接,VREF引腳則為ADC提供測量使用的參考電壓。
42.1.3 STM32的功耗模式
按功耗由高到低排列,STM32具有運行、睡眠、停止和待機四種工作模式。上電復位后STM32處于運行狀態時,當內核不需要繼續運行,就可以選擇進入后面的三種低功耗模式降低功耗,這三種模式中,電源消耗不同、喚醒時間不同、喚醒源不同,用戶需要根據應用需求,選擇最佳的低功耗模式。三種低功耗的模式說明見表 423。
表 423STM32的低功耗模式說明
從表中可以看到,這三種低功耗模式層層遞進,運行的時鐘或芯片功能越來越少,因而功耗越來越低。
1. 睡眠模式
在睡眠模式中,僅關閉了內核時鐘,內核停止運行,但其片上外設,CM4核心的外設全都還照常運行。有兩種方式進入睡眠模式,它的進入方式決定了從睡眠喚醒的方式,分別是WFI(wait for interrupt)和WFE(wait for event),即由等待"中斷"喚醒和由"事件"喚醒。睡眠模式的各種特性見表 424。
表 424 睡眠模式的各種特性
2. 停止模式
在停止模式中,進一步關閉了其它所有的時鐘,于是所有的外設都停止了工作,但由于其1.2V區域的部分電源沒有關閉,還保留了內核的寄存器、內存的信息,所以從停止模式喚醒,并重新開啟時鐘后,還可以從上次停止處繼續執行代碼。停止模式可以由任意一個外部中斷(EXTI)喚醒。在停止模式中可以選擇電壓調節器為開模式或低功耗模式,可選擇內部FLASH工作在正常模式或掉電模式。停止模式的各種特性見表 425。
表 425 停止模式的各種特性
3. 待機模式
待機模式,它除了關閉所有的時鐘,還把1.2V區域的電源也完全關閉了,也就是說,從待機模式喚醒后,由于沒有之前代碼的運行記錄,只能對芯片復位,重新檢測boot條件,從頭開始執行程序。它有四種喚醒方式,分別是WKUP(PA0)引腳的上升沿,RTC鬧鐘事件,NRST引腳的復位和IWDG(獨立看門狗)復位。
表 426 待機模式的各種特性
在以上講解的睡眠模式、停止模式及待機模式中,若備份域電源正常供電,備份域內的RTC都可以正常運行、備份域內的寄存器及備份域內的SRAM數據會被保存,不受功耗模式影響。
42.2 電源管理相關的庫函數及命令
STM32標準庫對電源管理提供了完善的函數及命令,使用它們可以方便地進行控制,本小節對這些內容進行講解。
42.2.1 配置PVD監控功能
PVD可監控VDD的電壓,當它低于閾值時可產生PVD中斷以讓系統進行緊急處理,這個閾值可以直接使用庫函數PWR_PVDLevelConfig配置成前面表 422中說明的閾值等級。
42.2.2 WFI與WFE命令
我們了解到進入各種低功耗模式時都需要調用WFI或WFE命令,它們實質上都是內核指令,在庫文件core_cmInstr.h中把這些指令封裝成了函數,見代碼清單 241。
代碼清單 421 WFI與WFE的指令定義(core_cmInstr.h文件)
1
2 /** brief Wait For Interrupt
3
4 Wait For Interrupt is a hint instruction that suspends execution
5 until one of a number of events occurs.
6 */
7 #define __WFI __wfi
8
9
10 /** brief Wait For Event
11
12 Wait For Event is a hint instruction that permits the processor to enter
13 a low-power state until one of a number of events occurs.
14 */
15 #define __WFE __wfe
對于這兩個指令,我們應用時一般只需要知道,調用它們都能進入低功耗模式,需要使用函數的格式"__WFI();"和"__WFE();"來調用(因為__wfi及__wfe是編譯器內置的函數,函數內部使用調用了相應的匯編指令)。其中WFI指令決定了它需要用中斷喚醒,而WFE則決定了它可用事件來喚醒,關于它們更詳細的區別可查閱《cortex-CM3/CM4權威指南》了解。
42.2.3 進入停止模式
直接調用WFI和WFE指令可以進入睡眠模式,而進入停止模式則還需要在調用指令前設置一些寄存器位,STM32標準庫把這部分的操作封裝到PWR_EnterSTOPMode函數中了,它的定義見代碼清單 402。
代碼清單 422 進入停止模式
1 /**
2 * @brief 進入停止模式
3 *
4 * @note 在停止模式下所有I/O的會保持在停止前的狀態
5 * @note 從停止模式喚醒后,會使用HSI作為時鐘源
6 * @note 調壓器若工作在低功耗模式,可減少功耗,但喚醒時會增加延遲
7 * @param PWR_Regulator: 設置停止模式時調壓器的工作模式
8 * @arg PWR_MainRegulator_ON: 調壓器正常運行
9 * @arg PWR_LowPowerRegulator_ON: 調壓器低功耗運行
10 * @param PWR_STOPEntry: 設置使用WFI還是WFE進入停止模式
11 * @arg PWR_STOPEntry_WFI: WFI進入停止模式
12 * @arg PWR_STOPEntry_WFE: WFE進入停止模式
13 * @retval None
14 */
15 void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry)
16 {
17 uint32_t tmpreg = 0;
18
19 /* 設置調壓器的模式 ------------*/
20 tmpreg = PWR->CR;
21 /* 清除 PDDS 及 LPDS 位 */
22 tmpreg &= CR_DS_MASK;
23
24 /* 根據PWR_Regulator 的值(調壓器工作模式)配置LPDS,MRLVDS及LPLVDS位 */
25 tmpreg |= PWR_Regulator;
26
27 /* 寫入參數值到寄存器 */
28 PWR->CR = tmpreg;
29
30 /* 設置內核寄存器的SLEEPDEEP位 */
31 SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
32
33 /* 設置進入停止模式的方式-----------------*/
34 if (PWR_STOPEntry == PWR_STOPEntry_WFI) {
35 /* 需要中斷喚醒*/
36 __WFI();
37 } else {
38 /* 需要事件喚醒 */
39 __WFE();
40 }
41 /* 以下的程序是當重新喚醒時才執行的,清除SLEEPDEEP位的狀態*/
42 SCB->SCR &= (uint32_t)~((uint32_t)SCB_SCR_SLEEPDEEP_Msk);
43 }
這個函數有兩個輸入參數,分別用于控制調壓器的模式及選擇使用WFI或WFE停止,代碼中先是根據調壓器的模式配置PWR_CR寄存器,再把內核寄存器的SLEEPDEEP位置1,這樣再調用WFI或WFE命令時,STM32就不是睡眠,而是進入停止模式了。函數結尾處的語句用于復位SLEEPDEEP位的狀態,由于它是在WFI及WFE指令之后的,所以這部分代碼是在STM32被喚醒的時候才會執行。
要注意的是進入停止模式后,STM32的所有I/O都保持在停止前的狀態,而當它被喚醒時,STM32使用HSI作為系統時鐘(16MHz)運行,由于系統時鐘會影響很多外設的工作狀態,所以一般我們在喚醒后會重新開啟HSE,把系統時鐘設置會原來的狀態。
前面提到在停止模式中還可以控制內部FLASH的供電,控制FLASH是進入掉電狀態還是正常供電狀態,這可以使用庫函數PWR_FlashPowerDownCmd配置,它其實只是封裝了一個對FPDS寄存器位操作的語句,見代碼清單 423。這個函數需要在進入停止模式前被調用,即應用時需要把它放在上面的PWR_EnterSTOPMode之前。
代碼清單 423 控制FLASH的供電狀態
1 /**
2 * @brief 設置內部FLASH在停止模式時是否工作在掉電狀態
3 * 掉電狀態可使功耗更低,但喚醒時會增加延遲
4 * @param NewState:
5 ENABLE:FLASH掉電
6 DISABLE:FLASH正常運行
7 * @retval None
8 */
9 void PWR_FlashPowerDownCmd(FunctionalState NewState)
10 {
11 /*配置FPDS寄存器位*/
12 *(__IO uint32_t *) CR_FPDS_BB = (uint32_t)NewState;
13 }
42.2.4 進入待機模式
類似地,STM32標準庫也提供了控制進入待機模式的函數,其定義見代碼清單 403。
代碼清單 424 進入待機模式
1 /**
2 * @brief 進入待機模式
3 * @note 待機模式時,除以下引腳,其余引腳都在高阻態:
4 * -復位引腳
5 * - RTC_AF1 引腳 (PC13) (需要使能侵入檢測、時間戳事件或RTC鬧鐘事件)
6 * - RTC_AF2 引腳 (PI8) (需要使能侵入檢測或時間戳事件)
7 * - WKUP 引腳 (PA0) (需要使能WKUP喚醒功能)
8 * @note 在調用本函數前還需要清除WUF寄存器位
9 * @param None
10 * @retval None
11 */
12 void PWR_EnterSTANDBYMode(void)
13 {
14 /* 選擇待機模式 */
15 PWR->CR |= PWR_CR_PDDS;
16
17 /* 設置內核寄存器的SLEEPDEEP位 */
18 SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
19
20 /* 存儲操作完畢時才能進入待機模式,使用以下語句確保存儲操作執行完畢 */
21
22 __force_stores();
23
24 /* 等待中斷喚醒 */
25 __WFI();
26 }
該函數中先配置了PDDS寄存器位及SLEEPDEEP寄存器位,接著調用__force_stores函數確保存儲操作完畢后再調用WFI指令,從而進入待機模式。這里值得注意的是,待機模式也可以使用WFE指令進入的,如果您有需要可以自行修改;另外,由于這個函數沒有操作WUF寄存器位,所以在實際應用中,調用本函數前,還需要清空WUF寄存器位才能進入待機模式。
在進入待機模式后,除了被使能了的用于喚醒的I/O,其余I/O都進入高阻態,而從待機模式喚醒后,相當于復位STM32芯片,程序重新從頭開始執行。
42.3 PWR—睡眠模式實驗
在本小節中,我們以實驗的形式講解如何控制STM32進入低功耗睡眠模式。
42.3.1 硬件設計
實驗中的硬件主要使用到了按鍵、LED彩燈以及使用串口輸出調試信息,這些硬件都與前面相應實驗中的一致,涉及到硬件設計的可參考原理圖或前面章節中的內容。
42.3.2 軟件設計
本小節講解的是"PWR—睡眠模式"實驗,請打開配套的代碼工程閱讀理解。
1. 程序設計要點
(1) 初始化用于喚醒的中斷按鍵;
(2) 進入睡眠狀態;
(3) 使用按鍵中斷喚醒芯片;
2. 代碼分析
main函數
睡眠模式的程序比較簡單,我們直接閱讀它的main函數了解執行流程,見代碼清單 242。
代碼清單 425 睡眠模式的main函數(main.c文件)
1
2 /**
3 * @brief 主函數
4 * @param 無
5 * @retval 無
6 */
7 int main(void)
8 {
9
10 LED_GPIO_Config();
11
12 /*初始化USART1*/
13 Debug_USART_Config();
14
15 /* 初始化按鍵為中斷模式,按下中斷后會進入中斷服務函數 */
16 EXTI_Key_Config();
17
18 printf("rn歡迎使用秉火 STM32 F429 開發板。rn");
19 printf("rn秉火F429 睡眠模式例程rn");
20
21 printf("rn實驗說明:rn");
22
23 printf("rn 1.本程序中,綠燈表示STM32正常運行,紅燈表示睡眠狀態,藍燈表示剛從睡眠狀態被喚醒rn");
24 printf("rn 2.程序運行一段時間后自動進入睡眠狀態,在睡眠狀態下,可使用KEY1或KEY2喚醒rn");
25 printf("rn 3.本實驗執行這樣一個循環:rn");
26printf("rn --》亮綠燈(正常運行)->亮紅燈(睡眠模式)->按KEY1或KEY2喚醒->亮藍燈(剛被喚醒)--》rn");
27 printf("rn 4.在睡眠狀態下,DAP下載器無法給STM32下載程序,rn");
28 printf("rn可按KEY1、KEY2喚醒后下載,rn");
29 printf("rn或按復位鍵使芯片處于復位狀態,然后在電腦上點擊下載按鈕,再釋放復位按鍵,即可下載rn");
30
31 while (1) {
32 /*********執行任務***************************/
33 printf("rn STM32正常運行,亮綠燈rn");
34
35 LED_GREEN;
36 Delay(0x3FFFFFF);
37
38 /*****任務執行完畢,進入睡眠降低功耗***********/
39
40
41 printf("rn進入睡眠模式,按KEY1或KEY2按鍵可喚醒rn");
42
43 //使用紅燈指示,進入睡眠狀態
44 LED_RED;
45 //進入睡眠模式
46 __WFI(); //WFI指令進入睡眠
47
48 //等待中斷喚醒 K1或K2按鍵中斷
49
50 /***被喚醒,亮藍燈指示***/
51 LED_BLUE;
52 Delay(0x1FFFFFF);
53
54 printf("rn已退出睡眠模式rn");
55 //繼續執行while循環
56 }
57 }
這個main函數的執行流程見圖 425。
圖 425 睡眠模式實驗流程圖
(1) 程序中首先初始化了LED燈及串口以便用于指示芯片的運行狀態,并且把實驗板上的兩個按鍵都初始化成了中斷模式,以便當系統進入睡眠模式的時候可以通過按鍵來喚醒。這些硬件的初始化過程都跟前面章節中的一模一樣。
(2) 初始化完成后使用LED及串口表示運行狀態,在本實驗中,LED彩燈為綠色時表示正常運行,紅燈時表示睡眠狀態,藍燈時表示剛從睡眠狀態中被喚醒。
(3) 程序執行一段時間后,直接使用WFI指令進入睡眠模式,由于WFI睡眠模式可以使用任意中斷喚醒,所以我們可以使用按鍵中斷喚醒。
(4) 當系統進入停止狀態后,我們按下實驗板上的KEY1或KEY2按鍵,即可使系統回到正常運行的狀態,當執行完中斷服務函數后,會繼續執行WFI指令后的代碼。
中斷服務函數
系統剛被喚醒時會進入中斷服務函數,見代碼清單 243。
代碼清單 426 按鍵中斷的服務函數(stm32f4xx_it.c文件)
1
2 void KEY1_IRQHandler(void)
3 {
4 //確保是否產生了EXTI Line中斷
5 if (EXTI_GetITStatus(KEY1_INT_EXTI_LINE) != RESET) {
6 LED_BLUE;
7 printf("rn KEY1 按鍵中斷喚醒 rn");
8 EXTI_ClearITPendingBit(KEY1_INT_EXTI_LINE);
9 }
10 }
11
12 void KEY2_IRQHandler(void)
13 {
14 //確保是否產生了EXTI Line中斷
15 if (EXTI_GetITStatus(KEY2_INT_EXTI_LINE) != RESET) {
16 LED_BLUE;
17 printf("rn KEY2 按鍵中斷喚醒 rn");
18 //清除中斷標志位
19 EXTI_ClearITPendingBit(KEY2_INT_EXTI_LINE);
20 }
21 }
用于喚醒睡眠模式的中斷,其中斷服務函數也沒有特殊要求,跟普通的應用一樣。
42.3.3 下載驗證
下載這個實驗測試時,可連接上串口,在電腦端的串口調試助手獲知調試信息。當系統進入睡眠狀態的時候,可以按KEY1或KEY2按鍵喚醒系統。
注意:
當系統處于睡眠模式低功耗狀態時(包括后面講解的停止模式及待機模式),使用DAP下載器是無法給芯片下載程序的,所以下載程序時要先把系統喚醒。或者使用如下方法:按著板子的復位按鍵,使系統處于復位狀態,然后點擊電腦端的下載按鈕下載程序,這時再釋放復位按鍵,就能正常給板子下載程序了。
42.4 PWR—停止模式實驗
在睡眠模式實驗的基礎上,我們進一步講解如何進入停止模式及喚醒后的狀態恢復。
42.4.1 硬件設計
本實驗中的硬件與睡眠模式中的一致,主要使用到了按鍵、LED彩燈以及使用串口輸出調試信息。
42.4.2 軟件設計
本小節講解的是"PWR—停止模式"實驗,請打開配套的代碼工程閱讀理解。
1. 程序設計要點
(1) 初始化用于喚醒的中斷按鍵;
(2) 設置停止狀態時的FLASH供電或掉電;
(3) 選擇電壓調節器的工作模式并進入停止狀態;
(4) 使用按鍵中斷喚醒芯片;
(5) 重啟HSE時鐘,使系統完全恢復停止前的狀態。
2. 代碼分析
重啟HSE時鐘
與睡眠模式不一樣,系統從停止模式被喚醒時,是使用HSI作為系統時鐘的,在STM32F429中,HSI時鐘一般為16MHz,與我們常用的180MHz相關太遠,它會影響各種外設的工作頻率。所以在系統從停止模式喚醒后,若希望各種外設恢復正常的工作狀態,就要恢復停止模式前使用的系統時鐘,本實驗中定義了一個SYSCLKConfig_STOP函數,用于恢復系統時鐘,它的定義見代碼清單 243。
上一篇:第38章 I2S—音頻播放與錄音輸入—零死角玩轉STM32-F429系列
下一篇:第41章 RS-485通訊實驗—零死角玩轉STM32-F429系列
推薦閱讀
史海拾趣
進入21世紀后,環保和可持續發展成為全球關注的焦點。Hokuriku Electric積極響應這一趨勢,將環保理念融入產品研發和生產過程中。公司投入大量資源研發綠色電子產品,減少生產過程中的能源消耗和廢棄物排放。同時,Hokuriku Electric還積極參與行業內的環保倡議和合作項目,推動整個電子行業的可持續發展。這一舉措不僅贏得了社會各界的廣泛贊譽,還為公司帶來了更多的商業機會和合作伙伴。
進入新世紀,隨著科技的快速發展,電子產品更新換代速度日益加快。ANSHAN公司深知技術創新的重要性,不斷加大研發投入,積極引進先進技術和設備。在一次重要的技術攻關中,公司研發團隊成功突破了一項關鍵技術難題,推出了一款性能卓越、價格實惠的新型電子產品,受到了市場的熱烈歡迎。這一技術突破不僅提升了公司的核心競爭力,也為公司的后續發展奠定了堅實基礎。
EMMICRO公司始終將產品質量視為企業的生命線。公司建立了嚴格的質量管理體系,從原材料采購到生產流程,再到成品檢驗,每一個環節都嚴格把控,確保產品的品質穩定可靠。這種對品質的執著追求贏得了客戶的信任和好評,也為公司贏得了更多的市場份額。
隨著公司規模的不斷擴大和產品質量的不斷提升,普芯達電子開始積極拓展市場,尋求更廣闊的發展空間。公司通過與國內外知名企業和機構建立合作關系,共同開展技術研發和市場推廣等活動,進一步提高了公司的知名度和影響力。同時,普芯達電子還積極參與國際展覽和交流活動,與全球同行交流學習,不斷提升自身的技術水平和市場競爭力。
在電子行業的初期,FCT electronic公司由一群富有遠見和激情的工程師創立。他們看到了撓性電路板在未來電子產品中的巨大潛力,并致力于研發出更高效、更可靠的撓性電路板解決方案。經過數年的不懈努力,FCT electronic公司終于研發出了具有革命性意義的撓性電路板技術,這一技術為公司在行業中樹立了良好的口碑,也為公司的后續發展奠定了堅實的基礎。
進入上世紀三十年代,Chauvin Arnoux開始涉足攝影領域。1936年,公司成功開發了第一臺攝影用曝光表,為攝影師提供了更為精確的曝光測量工具。這一產品的推出,不僅滿足了攝影行業對精確測量的需求,也進一步擴大了Chauvin Arnoux在測量儀器領域的市場份額。
致單片機初學者:proteus單片機仿真軟件讓你零投入學會單片機 (轉) 前幾天跟一個網友討論過,學單片機最需要的是什么,我們的回答是一樣的: 1。強烈的興趣。 2。要有錢買板子和元件。 單片機帶給人的樂趣是無窮的,不過有時想買的元件很貴,或者購買不方便,所以很多設計都沒法玩,不過proteus的出現改變了我們 ...… 查看全部問答∨ |
|
了解中斷向量表動態配置的朋友們,不妨在這里討論一下。 實現思路是如何的? 我先在這里貼一篇文章,希望后面討論的朋友可以圍繞這個思路討論。 文章鏈接: http://hi.baidu.com/netee/blog/item ...… 查看全部問答∨ |
|
歐姆龍CX-ONE軟件里的programmer里的在線模擬怎么實現 我有個歐姆龍的程序 沒有連PLC想在線模擬 但是我打開程序以后發現在線模擬是灰顏色的,我之前好像弄了個只讀模式,和這個有關么?怎么實現在線模擬,謝謝幫忙回答一下… 查看全部問答∨ |
|
MSP430最新推出帶鐵電FRAM存儲器的MCU,是業界最早少數幾家將其集成在MCU中方案。 FRAM其名為RAM,說明具有RAM的部分屬性;同時又是非易失性存儲器,具備FLASH的部分性能。確切說,FRAM是綜合RAM和FLASH優勢的一款新的存儲設備。 具體來說: 1) ...… 查看全部問答∨ |
接口設計 什么是接口?接口是CPU和外設之間的連接設備,用于緩存和轉發數據。 為什么需要接口?(1)解決主機CPU和外圍設備之間的時序配合和通信聯絡問題 主機的CPU是高速處理器件,比如8086-1的主 ...… 查看全部問答∨ |