在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

一文了解msp430單片機的存儲器組織

454398 ? 來源:博客園 ? 作者:給我一杯酒 ? 2020-11-06 10:14 ? 次閱讀

一般,在單片機中的Flash存儲器用于存放程序代碼,屬于只讀型存儲器。而在MSP430些列的單片機中,都可以通過內置的Flash控制器擦除或改寫任何一段的內容。另外,msp430的單片機內部還專門留有一段Flash區域(information memory),用于存放掉電后需要永久保存的數據。利用430內部的Flash控制器,可以完成較大容量的數據記錄、用戶設置參數在掉電后的保存等功能。

硬件介紹:

要對Flash讀寫,首先要了解MSP430的存儲器組織。430單片機的存儲器組織結構采用馮諾依曼結構,RAMROM統一編址在同一尋址空間中,沒有代碼空間和數據空間之分。

一般430的單片機都統一編址在0-64k地址范圍中,只有少數高端的型號才能突破64k(如:FG461x系列)。絕大多數的msp430單片機都編址在64kB范圍內。地址的大概編碼方式如下:

這是msp430f425的存儲器分配圖,其他在64k范圍內的存儲器的單片機編址方式與此類似:低256B是寄存器區,然后是RAM;空白;1000H到10FFH是信息Flash區;大于1100H-0FFFFH是主存儲器區(從0FFFFH開始往低地址有單片機的主Flash,多余的部分空白)。

MSP430F14x的Flash分布:

MSP430F16x的Flash分布:

主Flash部分和信息Flash部分如下(60kB Flash對應的單片機,如msp430f149、msp430f149):

主Flash分為以512B為段的單位,0段是單片機中斷向量等程序入口地址,使用時不要擦除此段或改寫此段,若要擦除或是改寫,請先保存內容到RAM或其他段;主Flash各段內容均要避免寫入或擦除,以免造成不可預料的后果。

信息Flash分為兩段:段A和段B,每段128B;可以保存用戶自己的內容(主Flash也可以但是要避免與程序代碼區沖突);這里就把信息Flash的兩段稱為InfoA(1080H-10FFh)和InfoB(1000H-10FFH)。

Flash的操作包括:字或字節寫入;塊寫入;段擦除;主Flash擦除;全部擦除。任何的Flash操作都可以從Flash或從RAM中運行。

Flash操作時需要時序發生器,Flash控制器內部含有時序發生器用以產生所需的Flash時鐘,Flash時鐘的范圍必須在257kHz到476kHz之間。時序發生器的框圖如下:

時序發生器可以選擇ACLK、MCLK、SMCLK作為時鐘源,通過分頻獲得所需的257kHz到476kHz之間的Flash操作時鐘。如果時鐘頻率不再這個范圍內,將會產生不可預料的結果。

擦除:擦除之后,存儲器中的bit都變為1;Flash中的每一位都可以通過編程寫入有1到0,但是要想由0變為1,必須通過擦除周期。擦除的最小單位是段。有三種擦除模式:

MERAS   ERASE       Erase Mode
0       1           Segment erase
1       0           Mass erase (all main memory segments)
1       1           Erase all flash memory (main and information .segments)

可以通過MERAS、ERASE位來設置擦除的模式:段擦除,主Flash擦除,全部擦除。

對要擦除段內的一個地址空寫入啟動擦出周期:空寫入可以啟動時序發生器和擦除操作。空寫入后BUSY位立即變高直到擦除周期結束,這一位變為低(0)。BUSY, MERAS和 ERASE位在擦除周期結束后會自動復位。擦除周期的時間和要擦出的Flash大小無關,每次擦除的時間對于MSP430F1xx系系列單片機來說,所需時間是一樣的。擦除的時序如下:

當空寫入到的地址不在要擦除的段地址范圍內的時候,空寫入無效,直接被忽略。在擦除周期內,應該關中斷,直到擦除完成,重新開中斷,擦除期間的中斷已經置標志位,開中斷后立即響應。

從Flash中啟動的擦除操作:擦除操作可以從Flash中啟動或是從RAM中啟動。當操作是從Flash中啟動的時候,Flash控制器控制了操作時序,CPU運行被暫停直到擦除結束。擦除周期結束后,CPU繼續執行,從空寫入之后的指令開始運行。當從Flash中啟動擦除操作時,可以擦除即將運行的程序所在的段,如果擦除了即將運行的程序所在的Flash段時,擦除結束后,CPU的運行不可預料。

從Flash啟動時擦除周期如下:

用戶指南里面的示例匯編程序如下:

; Segment Erase from flash. 514 kHz < SMCLK < 952 kHz
; Assumes ACCVIE = NMIIE = OFIE = 0.
MOV #WDTPW+WDTHOLD,&WDTCTL ; Disable WDT
DINT //; Disable interrupts
MOV #FWKEY+FSSEL1+FN0,&FCTL2 ; SMCLK/2
MOV #FWKEY,&FCTL3 ; Clear LOCK
MOV #FWKEY+ERASE,&FCTL1 ; Enable segment erase
CLR &0FC10h ; Dummy write, erase S1
MOV #FWKEY+LOCK,&FCTL3 ; Done, set LOCK
... ; Re-enable WDT?
EINT ; Enable interrupts

從RAM中啟動擦除操作:任意擦除周期都可以從RAM啟動,這時CPU不再暫停而是繼續從RAM中運行接下來的程序。CPU可以訪問任何Flash地址之前,必須檢查BUSY位以確定擦除周期結束。如果BUSY = 1訪問Flash,這是一個訪問沖突,這時ACCVIFG將被設置,而擦除的結果將是不可預測的的。

從RAM中啟動擦除操作時,過程如下:

要在擦除之前確認沒有訪問Flash,然后擦除完成之前不允許訪問Flash。

; Segment Erase from RAM. 514 kHz < SMCLK < 952 kHz
; Assumes ACCVIE = NMIIE = OFIE = 0.
MOV #WDTPW+WDTHOLD,&WDTCTL  ; Disable WDT
DINT                        ; Disable interrupts
L1 BIT #BUSY,&FCTL3         ; Test BUSY
JNZ L1                      ; Loop while busy
MOV #FWKEY+FSSEL1+FN0,&FCTL2; SMCLK/2
MOV #FWKEY,&FCTL3           ; Clear LOCK
MOV #FWKEY+ERASE,&FCTL1     ; Enable erase
CLR &0FC10h                 ; Dummy write, erase S1
L2 BIT #BUSY,&FCTL3         ; Test BUSY
JNZ L2                      ; Loop while busy
MOV #FWKEY+LOCK,&FCTL3      ; Done, set LOCK
...                         ; Re-enable WDT?
EINT                        ; Enable interrupts

寫Flash操作:寫入的模式由WRT和BLKWRT位來確定:

BLKWRT      WRT         Write Mode
0           1           Byte/word write
1           1           Block write

這兩種模式中塊寫入大約是字或字節寫操作時的兩倍快,因為在塊寫入完成之前,變成電壓一直維持直到塊寫入完成。同一個位置不能在擦除周期之前寫入兩次或以上,否則將發生數據損壞。寫操作時,BUSY位被置1,寫入完成后,BUSY被自動清零。如果寫操作是從RAM發起的,在BUSY=1時,程序不能訪問Flash,否則會發生訪問沖突,置位ACCVIFG,Flash寫入操作不可以預料。

字或字節寫入:字或字節寫入可以從Flash內部發起,也可以從RAM中發起。如果是從Flash中啟動的寫操作,時序將由Flash控制,在寫入完成之前CPU運行將被暫停。寫入完成后CPU將繼續運行。

操作時序如下:

若是從RAM中啟動寫Flash,程序將繼續從RAM中運行。CPU再次訪問Flash之前必須確認BUSY位已經清零,否則會發生訪問沖突,置位ACCVIFG,寫入的結果將不可預料。

字或字節寫入模式下,內部產生的編程電壓時適用于完整的64個字節塊的寫入
In byte/word mode, the internally-generated programming voltage is applied
to the complete 64-byte block, each time a byte or word is written, for 32 of the
35 fFTG cycles. With each byte or word write, the amount of time the block is
subjected to the programming voltage accumulates. The cumulative
programming time, tCPT, must not be exceeded for any block. If the cumulative
programming time is met, the block must be erased before performing any
further writes to any address within the block.

從Flash發起寫字節或字時:

; Byte/word write from flash. 514 kHz < SMCLK < 952 kHz
; Assumes 0FF1Eh is already erased
; Assumes ACCVIE = NMIIE = OFIE = 0.
MOV #WDTPW+WDTHOLD,&WDTCTL      ; Disable WDT
DINT ; Disable interrupts
MOV #FWKEY+FSSEL1+FN0,&FCTL2    ; SMCLK/2
MOV #FWKEY,&FCTL3               ; Clear LOCK
MOV #FWKEY+WRT,&FCTL1           ; Enable write
MOV #0123h,&0FF1Eh              ; 0123h ?> 0FF1Eh
MOV #FWKEY,&FCTL1               ; Done. Clear WRT
MOV #FWKEY+LOCK,&FCTL3          ; Set LOCK
...                             ; Re-enable WDT?
EINT                            ; Enable interrupts

從RAM中啟動寫入操作時:

; Byte/word write from RAM. 514 kHz < SMCLK < 952 kHz
; Assumes 0FF1Eh is already erased
; Assumes ACCVIE = NMIIE = OFIE = 0.
MOV #WDTPW+WDTHOLD,&WDTCTL      ; Disable WDT
DINT                            ; Disable interrupts
L1 BIT #BUSY,&FCTL3             ; Test BUSY
JNZ L1                          ; Loop while busy
MOV #FWKEY+FSSEL1+FN0,&FCTL2    ; SMCLK/2
MOV #FWKEY,&FCTL3               ; Clear LOCK
MOV #FWKEY+WRT,&FCTL1           ; Enable write
MOV #0123h,&0FF1Eh              ; 0123h ?> 0FF1Eh
L2 BIT #BUSY,&FCTL3             ; Test BUSY
JNZ L2                          ; Loop while busy
MOV #FWKEY,&FCTL1               ; Clear WRT
MOV #FWKEY+LOCK,&FCTL3          ; Set LOCK
...                             ; Re-enable WDT?
EINT                            ; Enable interrupts

塊寫入:當需要寫入連續的多個字或字節時,塊寫入能夠能夠提高Flash訪問速度。塊寫入時,內部產生的編程電壓一直存在在64個字節的塊寫入期間。塊寫入不能有Flash存儲器內啟動,必須從RAM中發起塊寫入操作。塊寫入期間,BUSY位被置位。在寫入每個字節或字時必須檢測WAIT位。下一個字或字節能夠被寫入時,WAIT位被置位。

塊寫入的過程如下:

; Write one block starting at 0F000h.
; Must be executed from RAM, Assumes Flash is already erased.
; 514 kHz < SMCLK < 952 kHz
; Assumes ACCVIE = NMIIE = OFIE = 0.
MOV #32,R5                      ; Use as write counter
MOV #0F000h,R6                  ; Write pointer
MOV #WDTPW+WDTHOLD,&WDTCTL      ; Disable WDT
DINT                            ; Disable interrupts
L1 BIT #BUSY,&FCTL3             ; Test BUSY
JNZ L1 ; Loop while busy
MOV #FWKEY+FSSEL1+FN0,&FCTL2    ; SMCLK/2
MOV #FWKEY,&FCTL3               ; Clear LOCK
MOV #FWKEY+BLKWRT+WRT,&FCTL1    ; Enable block write
L2 MOV Write_Value,0(R6)        ; Write location
L3 BIT #WAIT,&FCTL3             ; Test WAIT
JZ L3                           ; Loop while WAIT=0
INCD R6                         ; Point to next word
DEC R5                          ; Decrement write counter
JNZ L2                          ; End of block?
MOV #FWKEY,&FCTL1               ; Clear WRT,BLKWRT
L4 BIT #BUSY,&FCTL3             ; Test BUSY
JNZ L4                          ; Loop while busy
MOV #FWKEY+LOCK,&FCTL3          ; Set LOCK
...                             ; Re-enable WDT if needed
EINT                            ; Enable interrupts

當任何寫或擦除操作是從RAM啟動,而BUSY = 1,CPU不能讀取或寫入或從任何Flash位置。否則,發生訪問沖突,ACCVIFG設置,結果是不可預知的。此外,如果閃存寫入讓WRT= 0,ACCVIFG中斷標志設置,Flash不受影響。

如果寫入或擦除操作時從Flash啟動的,CPU訪問下一條指令時(從Flash讀取指令),Flash控制器返回03FFFH給CPU;03FFFH是指令JMP PC,這讓CPU一直循環直到Flash操作完成。Flash寫入或擦除操作完成后,允許CPU繼續訪問接下來的指令。

當BUSY=1時,Flash訪問時:

在開始Flash操作之前,需要停止所有的中斷源。如果在Flash操作期間有中斷響應,讀中斷服務程序的地址時,將收到03FFFH作為中斷服務程序的地址。如果BUSY=1;CPU將一直執行難IMP PC指令;Flash操作完成后,將從03FFFH執行中斷服務程序而不是正確的中斷程序的地址。

停止寫入或擦除:任何寫入和擦除操作都可以在正常完成之前,通過設置緊急退出位EMEX退出操作。設置EMEX時,立即停止當前活動的操作,停止Flash控制器;所有的Flash操作停止,Flash返回可讀模式,FCTL1的所有位復位;操作的結果不可預料。

設置和訪問Flash控制器:FCTLx是16位的、密碼保護的、可讀寫的寄存器。寫入這些寄存器都必須在高位包含密碼0A5H,如果寫入的不是0A5H,將會引起復位。讀寄存器時高位讀出的是96H。

在擦除或寫入字或字節時寫FCTL1寄存器將會引起訪問沖突,置位ACCVIFG.塊寫入時,WAIT=1時可以寫FCTL1寄存器,當WAIT=0時寫FCTL1寄存器是訪問沖突,置位ACCVIFG。BUSY=1時,所有寫入FCTL2寄存器都是訪問沖突。BUSY=1時,所有的FCTLx都可以讀操作,不會引起訪問沖突。

Flash的中斷:Flash控制器有兩個中斷源:KEYV, 和ACCVIFG。ACCVIFG在訪問沖突的時候被置位。當ACCVIE在Flash操作完成后被重新使能后ACCVIFG會引起中斷請求。ACCIFG和NMI同樣的中斷向量,所以這個中斷不需要GIE位允許即可產生中斷請求。必須通過軟件檢測ACCVIFG位,以確定發生了訪問沖突;ACCVIFG位必須軟件復位。KEYV是關鍵值錯誤當寫Flash的寄存器時沒有寫正確的高位密碼時被置位,這是會立刻引起PUC信號復位整個硬件。

編程Flash的硬件:編程430的Flash內容有三種選擇,通過JTAG、通過BSL和用戶定制。用戶定制即是通過單片機的程序訪問自己的Flash。

Flash的寄存器列表如下:

Register                            Short Form      Register Type   Address     Initial State
Flash memory control register 1     FCTL1           Read/write      0128h       09600h with PUC
Flash memory control register 2     FCTL2           Read/write      012Ah       09642h with PUC
Flash memory control register 3     FCTL3           Read/write      012Ch       09618h with PUC
Interrupt Enable 1                  IE1             Read/write      000h        Reset with PUC

Flash的硬件部分就介紹這么多了,有什么不大懂的地方請參考TI提供的用戶指南。

程序實現:

首先設置Flash的時鐘,初始化Flash控制器:

void FlashInit()
{
    FCTL2 = FWKEY + FSSEL_2 + FN1;          // 默認 SMCLK/3 =333KHz 
}

這個函數僅僅設置了時鐘。

擦除函數:

void FlashErase(unsigned int Addr)  
{ 
    char *FlashPtr;
    FlashPtr = (char *)Addr;
    FCTL1 = FWKEY + ERASE;                      // Set Erase bit
    FCTL3 = FWKEY;                              // Clear Lock bit
    DINT;
    *FlashPtr = 0;                              // Dummy write to erase Flash segment B
    WaitForEnable();                            //Busy
    EINT;
    FCTL1 = FWKEY;                              // Lock
    FCTL3 = FWKEY + LOCK;                       // Set Lock bit  
}

這個和上面給出的流程一樣,參數是要被擦除的段的首地址。WaitForEnable函數等等待BUSY標志變回零即操作完成。

void WaitForEnable()
{
    while((FCTL3 & BUSY) == BUSY);      //Busy
}

寫入字節:

void FlashWriteChar(unsigned int addr,char Data)
{
    char *FlashPtr = (char *)addr;              // Segment A pointer
    FCTL1 = FWKEY + WRT;                        // Set WRT bit for write operation
    FCTL3 = FWKEY;                              // Clear Lock bit
    DINT;
    *FlashPtr = Data;                           // Save Data
    WaitForEnable();                            //Busy
    EINT;
    FCTL1 = FWKEY;                              // Clear WRT bit
    FCTL3 = FWKEY + LOCK;                       // Set LOCK bit
}

寫入字:

void FlashWriteWord(unsigned int addr,unsigned int Data)
{
    unsigned int *FlashPtr = (unsigned int *)addr;
    FCTL1 = FWKEY + WRT;                        // Set WRT bit for write operation
    FCTL3 = FWKEY;                              // Clear Lock bit
    DINT;
    *FlashPtr = Data;                           // Save Data
    WaitForEnable();                            //Busy
    EINT;
    FCTL1 = FWKEY;                              // Clear WRT bit
    FCTL3 = FWKEY + LOCK;                       // Set LOCK bit
}  

寫入字或字節兩個函數差別僅僅是指針類型不同。

讀取字或字節:

char FlashReadChar(unsigned int Addr)
{ 
    char Data;
    char *FlashPtr = (char *) Addr; 
    Data = *FlashPtr;
    return(Data);
}

unsigned int FlashReadWord(unsigned int Addr)
{ 
    unsigned int Data;
    unsigned int *FlashPtr = (unsigned int *)Addr; 
    Data = *FlashPtr;
    return(Data);
} 這兩個函數的差別也是僅僅指針類型不同。

這些函數和前面硬件介紹部分的程序流程相同,這里不再詳細說明。

使用示例:

使用方法和之前的一樣,工程中加入C文件,源代碼文件中文件包含H文件,即可使用,具體參考示例項目:

演示主要程序主要如下:

#include 
#include "Flash.h"

int a;
void main( void )
{
    // Stop watchdog timer to prevent time out reset
    WDTCTL = WDTPW + WDTHOLD;
    ClkInit();
    FlashInit();
    FlashWriteChar(InfoB,0x25);
    a=FlashReadChar (InfoB);        //InfoB在H文件中有宏定義
    FlashWriteWord(InfoB+2,0x5669);
    a = FlashReadWord(InfoB+2);
    FlashErase(InfoB);
    LPM0;
}這里向InfoB(1000h)首地址開始寫數據,先寫一個字節 再寫入一個字(注意寫入字時,必須是偶數地址,奇數地址會寫在這個地址所在的前一個偶數地址),讀出,然后擦除。這里的程序都是在Flash中運行的,沒有演示RAM中運行的程序。如果在RAM運行程序,則需要先把程序從Flash中移到RAM中,然后跳轉到RAM中運行。

調試截圖如下:

調試時,view-Memory菜單,調出存儲器窗口;觀察Flash內容。

這里寫入的是Info Flash部分,觀察這部分的結果,和寫入的結果同。

Flash程序控制器的程序就到這兒了。Flash可以用于存儲長期保存的數據。
編輯:hfy

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

    關注

    6043

    文章

    44623

    瀏覽量

    638690
  • FlaSh
    +關注

    關注

    10

    文章

    1644

    瀏覽量

    148707
  • Flash控制器
    +關注

    關注

    0

    文章

    6

    瀏覽量

    8093
收藏 人收藏

    評論

    相關推薦

    MSP430存儲器編程用戶指南

    電子發燒友網站提供《MSP430存儲器編程用戶指南.pdf》資料免費下載
    發表于 12-19 15:34 ?0次下載
    <b class='flag-5'>MSP430</b><b class='flag-5'>存儲器</b>編程用戶指南

    請問ADS112C04作為個模數轉化,怎么和msp430單片機相連,進行編程呢?

    請問ADS112C04作為個模數轉化,怎么和msp430單片機相連,進行編程呢?以及為什么它只有個數據輸入和輸出共用的端口,而沒有其
    發表于 12-11 06:29

    MSP430?硬件工具

    電子發燒友網站提供《MSP430?硬件工具.pdf》資料免費下載
    發表于 11-07 09:10 ?0次下載
    <b class='flag-5'>MSP430</b>?硬件工具

    基于MSP430單片機的模糊邏輯電機控制

    電子發燒友網站提供《基于MSP430單片機的模糊邏輯電機控制.pdf》資料免費下載
    發表于 10-23 10:21 ?0次下載
    基于<b class='flag-5'>MSP430</b><b class='flag-5'>單片機</b>的模糊邏輯電機控制

    MSP430 LFXT1振蕩精度

    電子發燒友網站提供《MSP430 LFXT1振蕩精度.pdf》資料免費下載
    發表于 10-23 10:20 ?0次下載
    <b class='flag-5'>MSP430</b> LFXT1振蕩<b class='flag-5'>器</b>精度

    了解MSP430閃存數據保留

    電子發燒友網站提供《了解MSP430閃存數據保留.pdf》資料免費下載
    發表于 10-21 09:34 ?0次下載
    <b class='flag-5'>了解</b><b class='flag-5'>MSP430</b>閃存數據保留

    基于MSP430單片機的軟件玻璃液晶驅動程序

    電子發燒友網站提供《基于MSP430單片機的軟件玻璃液晶驅動程序.pdf》資料免費下載
    發表于 10-18 10:41 ?0次下載
    基于<b class='flag-5'>MSP430</b><b class='flag-5'>單片機</b>的軟件玻璃液晶驅動程序

    利用MSP430單片機控制步進電機

    電子發燒友網站提供《利用MSP430單片機控制步進電機.pdf》資料免費下載
    發表于 10-09 14:18 ?0次下載
    利用<b class='flag-5'>MSP430</b><b class='flag-5'>單片機</b>控制步進電機

    使用低內存MSP430? MCU的帶備份存儲器的外部RTC

    電子發燒友網站提供《使用低內存MSP430? MCU的帶備份存儲器的外部RTC.pdf》資料免費下載
    發表于 10-09 11:43 ?0次下載
    使用低內存<b class='flag-5'>MSP430</b>? MCU的帶備份<b class='flag-5'>存儲器</b>的外部RTC

    msp430單片機的優缺點介紹

    自1996年面世以來,MSP430系列單片機以其卓越的性能和獨特的優勢,在電子工程領域獨樹幟。這款16位超低功耗的混合信號處理,憑借其出色的低功耗特性、高效的處理速度以及靈活的編程
    的頭像 發表于 09-25 17:12 ?821次閱讀

    MSP430FRBoot-適用于MSP430? FRAM大型存儲器型號器件的主存儲器引導加載程序和無線更新

    電子發燒友網站提供《MSP430FRBoot-適用于MSP430? FRAM大型存儲器型號器件的主存儲器引導加載程序和無線更新.pdf》資料免費下載
    發表于 09-21 09:16 ?0次下載
    <b class='flag-5'>MSP430</b>FRBoot-適用于<b class='flag-5'>MSP430</b>? FRAM大型<b class='flag-5'>存儲器</b>型號器件的主<b class='flag-5'>存儲器</b>引導加載程序和無線更新

    帶備份存儲器的獨立RTC,帶低成本MSP430 MCU應用說明

    電子發燒友網站提供《帶備份存儲器的獨立RTC,帶低成本MSP430 MCU應用說明.pdf》資料免費下載
    發表于 09-14 09:49 ?0次下載
    帶備份<b class='flag-5'>存儲器</b>的獨立RTC,帶低成本<b class='flag-5'>MSP430</b> MCU應用說明

    采用低成本MSP430單片機的外部可編程看門狗定時監控系統

    電子發燒友網站提供《采用低成本MSP430單片機的外部可編程看門狗定時監控系統.pdf》資料免費下載
    發表于 09-13 09:54 ?0次下載
    采用低成本<b class='flag-5'>MSP430</b><b class='flag-5'>單片機</b>的外部可編程看門狗定時<b class='flag-5'>器</b>監控系統

    利用超低功耗單片機 MSP430 作為系統伴隨芯片應用報告

    電子發燒友網站提供《利用超低功耗單片機 MSP430 作為系統伴隨芯片應用報告.pdf》資料免費下載
    發表于 09-10 10:52 ?0次下載
    利用超低功耗<b class='flag-5'>單片機</b> <b class='flag-5'>MSP430</b> 作為系統伴隨芯片應用報告

    MSP430FR604x(1)、MSP430FR603x(1)、超聲波感應MSP430?微控制數據表

    電子發燒友網站提供《MSP430FR604x(1)、MSP430FR603x(1)、超聲波感應MSP430?微控制數據表.pdf》資料免費下載
    發表于 08-02 11:52 ?0次下載
    <b class='flag-5'>MSP430</b>FR604x(1)、<b class='flag-5'>MSP430</b>FR603x(1)、超聲波感應<b class='flag-5'>MSP430</b>?微控制<b class='flag-5'>器</b>數據表
    主站蜘蛛池模板: 男人操女人视频免费 | www.色视频 | 热99re久久精品2久久久 | 福利姬 magnet| 四虎永久精品免费观看 | 韩国精品视频 | 天天搞夜夜 | 国产yw855.c免费观看网站 | 午夜影院啊啊啊 | 真爽~张开腿~让我插 | 色偷偷91综合久久噜噜噜男男 | 97九色 | 1024你懂的国产日韩欧美 | 国产美女亚洲精品久久久综合 | 免费看欧美一级特黄a大片一 | 久久久精品免费 | 色偷偷88欧美精品久久久 | 性xxxxx| 加勒比色综合 | 国产精品成人免费观看 | 天天操天天干天搞天天射 | 青草99| 久久精品国产99精品国产2021 | 亚洲人的天堂男人爽爽爽 | 久操操操 | 四虎综合九九色九九综合色 | 国产三级精品三级 | 日产国产精品亚洲系列 | 国产成人午夜精品影院游乐网 | 全黄h全肉边做边吃奶在线观看 | 777国产精品永久免费观看 | 色综合久久88色综合天天 | 精品少妇一区二区三区视频 | 亚洲欧美强伦一区二区另类 | 午夜色大片在线观看 | 天堂资源8中文最新版在线 天堂资源地址在线 | 国产一级毛片午夜 | 欧美性猛交xxxx乱大交高清 | 四虎国产精品免费久久影院 | 91正在播放 | 欧美亚洲天堂网 |