




已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
LPC23XX開發(fā)講解,朱明富,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,2,LPC23XX開發(fā)講解,簡介 Keil開發(fā)工具 程序模板 應(yīng)用程序設(shè)計(jì) 接口程序設(shè)計(jì) 硬件設(shè)計(jì),2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,3,LPC23XX簡介,ARM 7TDMI-S, 72MHz 512kB Flash, ISP, IAP 64kB RAM + 16kB Enet + 8kB USB + 2kB RTC USB, Ethernet, UART, CAN, I2C, I2S, SPI, SSP GPIO, 10 Bit AD/DA, PWM, 4 Timer, Watch DOG, RTC JTAG, PLL, On-Chip crystal oscillator,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,4,LPC23XX序列型號(hào),LPC2361/62/64/65/66/67/68 LPC2377/78 (144Pin) LPC2387 LPC2388 (144Pin),2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,5,LPC23XX開發(fā)工具,Keil ARM ADS NXP ISP軟件FlashMagic,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,6,LPC23XX開發(fā)板及應(yīng)用板,開發(fā)板-展示功能 應(yīng)用板-實(shí)際應(yīng)用,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,7,LPC23XX應(yīng)用,選型考慮 是否一定要選擇OS uCosII,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,8,Keil安裝,mdk305.exe rtlarm305.exe License Management,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,9,Keil 軟件工程,新建Keil工程 從模板程序建立工程 修改LPCTest2.Uv2 修改LPCTest2.Opt,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,10,Keil 中源代碼管理,選Project-Manage-Components, ,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,11,Keil 中所支持的設(shè)備管理,File-Device Database,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,12,Keil 中應(yīng)用程序選項(xiàng)管理,點(diǎn)快捷按鈕Options for Target,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,13,Keil中仿真器,Segger的RDI接口 ULink ULink實(shí)際上是并口(打印機(jī)口) ULink上用了一顆USB轉(zhuǎn)并口的芯片 ULink只能設(shè)單個(gè)斷點(diǎn) ULink的驅(qū)動(dòng)程序安裝,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,14,Keil的調(diào)試,設(shè)置斷點(diǎn) 單步運(yùn)行 關(guān)閉WatchDog,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,15,LPC23XX程序模板,新建Keil工程 說明:startup.s是匯編程序,完成如下功能: 主晶振起振 PLL配置 中斷向量設(shè)置 堆棧設(shè)置 跳轉(zhuǎn)到C主程序,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,16,一個(gè)簡單的程序,在前面創(chuàng)建的程序中沒有C主程序 這個(gè)例子是一個(gè)模板 編程規(guī)則 把代碼文件分類 把代碼文件按通用性分目錄存放,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,17,程序模板解析,Main.c 主程序 Startup.s 啟動(dòng)文件 Target.c 目標(biāo)板初始化 Irq.c IRQ處理接口 Swi_handler.s 軟件中斷處理,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,18,startup.s,文件說明 宏定義 中斷向量 復(fù)位中斷處理 跳轉(zhuǎn)到C主程序 加密處理 內(nèi)存段分配,Mode_USR EQU 0x10 Mode_FIQ EQU 0x11 Mode_IRQ EQU 0x12 Mode_SVC EQU 0x13 Mode_ABT EQU 0x17 Mode_UND EQU 0x1B Mode_SYS EQU 0x1F I_Bit EQU 0x80 ; when I bit is set, IRQ is disabled F_Bit EQU 0x40 ; when F bit is set, FIQ is disabled ;/ Stack Configuration (Stack Sizes in Bytes) ;/ Undefined Mode ;/ Supervisor Mode ;/ Abort Mode ;/ Fast Interrupt Mode ;/ Interrupt Mode ;/ User/System Mode ;/ UND_Stack_Size EQU 0x00000000 SVC_Stack_Size EQU 0x00000100 ABT_Stack_Size EQU 0x00000080 FIQ_Stack_Size EQU 0x00000080 IRQ_Stack_Size EQU 0x00000600 USR_Stack_Size EQU 0x00000800 ;/ 說明: 當(dāng)程序還有更多的RAM時(shí), 可再增加用戶Stack的大小 Stack_Size EQU (UND_Stack_Size + SVC_Stack_Size + ABT_Stack_Size + FIQ_Stack_Size + IRQ_Stack_Size + USR_Stack_Size) AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE Stack_Size Stack_Top EQU Stack_Mem + Stack_Size,;/ Heap Configuration ;/ Heap Size (in Bytes) ;/ Heap_Size EQU 0x00000000 AREA HEAP, NOINIT, READWRITE, ALIGN=3 Heap_Mem SPACE Heap_Size ; Area Definition and Entry Point ; Startup Code must be linked first at Address at which it expects to run. AREA RESET, CODE, READONLY ARM ; Exception Vectors ; Mapped to Address 0. ; Absolute addressing mode must be used. ; Dummy Handlers are implemented as infinite loops which can be modified. Vectors LDR PC, Reset_Addr LDR PC, Undef_Addr LDR PC, SWI_Addr LDR PC, PAbt_Addr LDR PC, DAbt_Addr NOP ; Reserved Vector ; LDR PC, IRQ_Addr LDR PC, PC, #-0x0120 ; Vector from VicVectAddr LDR PC, FIQ_Addr,;/* ;* startup.s: startup file for NXP LPC230x Family Microprocessors ;* ;* Copyright(C) 2006, NXP Semiconductor ;* All rights reserved. ;* ;* History ;* 2006.09.01 ver 1.00 Prelimnary version, first Release ;* ;*/ PRESERVE8 ;/* ; * The STARTUP.S code is executed after CPU Reset. This file may be ; * translated with the following SET symbols. In uVision these SET ; * symbols are entered under Options - ASM - Define. ; * ; * REMAP: when set the startup code initializes the register MEMMAP ; * which overwrites the settings of the CPU configuration pins. The ; * startup and interrupt vectors are remapped from: ; * 0x00000000 default setting (not remapped) ; * 0x40000000 when RAM_MODE is used ; * ; * RAM_MODE: when set the device is configured for code execution ; * from on-chip RAM starting at address 0x40000000. ; */ ; Standard definitions of Mode bits and Interrupt (I & F) flags in PSRs,Reset_Addr DCD Reset_Handler Undef_Addr DCD Undef_Handler SWI_Addr DCD SWI_Handler PAbt_Addr DCD PAbt_Handler DAbt_Addr DCD DAbt_Handler DCD 0xB9206E28 ; Reserved Address IRQ_Addr DCD IRQ_Handler1 FIQ_Addr DCD FIQ_Handler Undef_Handler B Undef_Handler ;MOVS PC, R14 SWI_Handler B SWI_Handler PAbt_Handler B PAbt_Handler DAbt_Handler ;B DAbt_Handler SUBS PC, R14, #8 IRQ_Handler B IRQ_Handler FIQ_Handler B FIQ_Handler,; Reset Handler EXPORT Reset_Handler Reset_Handler ; Setup Stack for each mode LDR R0, =Stack_Top ; Enter Undefined Instruction Mode and set its Stack Pointer MSR CPSR_c, #Mode_UND:OR:I_Bit:OR:F_Bit MOV SP, R0 SUB R0, R0, #UND_Stack_Size ; Enter Abort Mode and set its Stack Pointer MSR CPSR_c, #Mode_ABT:OR:I_Bit:OR:F_Bit MOV SP, R0 SUB R0, R0, #ABT_Stack_Size ; Enter FIQ Mode and set its Stack Pointer MSR CPSR_c, #Mode_FIQ:OR:I_Bit:OR:F_Bit MOV SP, R0 SUB R0, R0, #FIQ_Stack_Size ; Enter IRQ Mode and set its Stack Pointer MSR CPSR_c, #Mode_IRQ:OR:I_Bit:OR:F_Bit MOV SP, R0 SUB R0, R0, #IRQ_Stack_Size ; Enter Supervisor Mode and set its Stack Pointer MSR CPSR_c, #Mode_SVC:OR:I_Bit:OR:F_Bit MOV SP, R0 SUB R0, R0, #SVC_Stack_Size ; Enter User Mode and set its Stack Pointer MSR CPSR_c, #Mode_USR MOV SP, R0 SUB SL, SP, #USR_Stack_Size,; Enter the C code IMPORT TargetResetInit BL TargetResetInit IMPORT _main LOADCMAINFUNCTION LDR R0, =_main BX R0 NOP SUB R0, R0, R0 BX R0 NOP ; LPC23xx非典FLASHROM的中斷向量表架構(gòu) IMPORT VIC_Vect_Addr0 IRQ_Handler1 STMFD SP!, R11, R12, LR;真保護(hù)R11R12, 假保護(hù)LR(用于運(yùn)算) ;/ LDR R12, VIC_Vect_Addr ;取VICVectAddr物理地址 ;/ LDR R12, R12 ;取出取VICVectAddr內(nèi)實(shí)際向量中斷號(hào)(非地址) LDR R12, PC , #-0x14c ;取出取VICVectAddr內(nèi)實(shí)際向量中斷號(hào)(非地址) AND R12, #0x1f ;防止32個(gè)中斷序號(hào)越界, ;在此可再做序號(hào)越界處理(可省略) LDR R11, =VIC_Vect_Addr0 LDR R12, R11, R12, LSL #2;散轉(zhuǎn)到用戶真正的向量中斷地址 STR R12, SP, #0x08 ;將中斷向量地址R12寫入事先保存的那個(gè)LR空間 LDMFD SP!, R11, R12, PC ;恢復(fù)R11R12,同時(shí)PC跳入中斷向量地址執(zhí)行,; Encryption FLASH IF :DEF:EN_CRP IF . = 0x1fc INFO 1,“nThe data at 0x000001fc this line.“ ENDIF CrpData WHILE . 0x1fc NOP WEND CrpData1 ; 如果要加密, 請(qǐng)使用此行, 注釋下一行 ; DCD 0x87654321 DCD 0x00000000 ENDIF ; 說明: 這里保留至4kFlash邊界, 以避免VIC中斷代碼處于前4k范圍內(nèi) ; 從而使得某些時(shí)候不能正常運(yùn)行 WHILE . 0x0ff8 NOP WEND ;- ; User Initial Stack & Heap AREA |.text|, CODE, READONLY IMPORT _use_two_region_memory EXPORT _user_initial_stackheap _user_initial_stackheap LDR R0, = Heap_Mem LDR R1, = (Stack_Mem + USR_Stack_Size) LDR R2, = (Heap_Mem + Heap_Size) LDR R3, = Stack_Mem BX LR END,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,19,target.c,文件說明 TargetInit函數(shù) GPIOResetInit ConfigurePLL TargetResetInit,/* * target.c: Target C file for NXP LPC23xx/24xx Family Microprocessors * * Copyright(C) 2006, NXP Semiconductor * All rights reserved. * * History * 2006.07.13 ver 1.00 Prelimnary version, first Release * */ #include “LPC23xx.h“ #include “type.h“ #include “irq.h“ #include “target.h“,/* * Function name: TargetInit * * Descriptions: Initialize the target board; it is called in a necessary * place, change it as needed * * parameters: None * Returned value: None * */ void TargetInit(void) /* Add your codes here */ return; ,/* * Function name: GPIOResetInit * * Descriptions: Initialize the target board before running the main() * function; User may change it as needed, but may not * deleted it. * * parameters: None * Returned value: None * */ void GPIOResetInit( void ) /* Reset all GPIO pins to default: primary function */ PINSEL0 = 0x00000000; PINSEL1 = 0x00000000; PINSEL2 = 0x00000000; PINSEL3 = 0x00000000; PINSEL4 = 0x00000000; PINSEL5 = 0x00000000; PINSEL6 = 0x00000000; PINSEL7 = 0x00000000; PINSEL8 = 0x00000000; PINSEL9 = 0x00000000; PINSEL10 = 0x00000000;,IODIR0 = 0x00000000; IODIR1 = 0x00000000; IOSET0 = 0x00000000; IOSET1 = 0x00000000; FIO0DIR = 0x00000000; FIO1DIR = 0x00000000; FIO2DIR = 0x00000000; FIO3DIR = 0x00000000; FIO4DIR = 0x00000000; FIO0SET = 0x00000000; FIO1SET = 0x00000000; FIO2SET = 0x00000000; FIO3SET = 0x00000000; FIO4SET = 0x00000000; SCS |= 0x00000001; return; ,/* * Function name: ConfigurePLL * * Descriptions: Configure PLL switching to main OSC instead of IRC * at power up and wake up from power down. * This routine is used in TargetResetInit() and those * examples using power down and wake up such as * USB suspend to resume, ethernet WOL, and power management * example * parameters: None * Returned value:None * */ void ConfigurePLL ( void ) DWORD MValue, NValue; if ( PLLSTAT /* select main OSC, 12MHz, as the PLL clock source */,PLLCFG = PLL_MValue | (PLL_NValue 16; while (MValue != PLL_MValue) ,/* * Function name: TargetResetInit * * Descriptions: Initialize the target board before running the main() * function; User may change it as needed, but may not * deleted it. * * parameters: None * Returned value:None * */ void TargetResetInit(void) #ifdef _DEBUG_RAM MEMMAP = 0x2; /* remap to internal RAM */ #endif #ifdef _DEBUG_FLASH MEMMAP = 0x1; /* remap to internal flash */ #endif #if USE_USB PCONP |= 0x80000000; /* Turn On USB PCLK */ #endif /* Configure PLL, switch from IRC to Main OSC */ ConfigurePLL();,/* Set system timers for each component */ #if (Fpclk / (Fcclk / 4) = 1 PCLKSEL0 = 0x00000000; /* PCLK is 1/4 CCLK */ PCLKSEL1 = 0x00000000; #endif #if (Fpclk / (Fcclk / 4) = 2 PCLKSEL0 = 0xAAAAAAAA; /* PCLK is 1/2 CCLK */ PCLKSEL1 = 0xAAAAAAAA; #endif #if (Fpclk / (Fcclk / 4) = 4 PCLKSEL0 = 0x55555555; /* PCLK is the same as CCLK */ PCLKSEL1 = 0x55555555; #endif /* Set memory accelerater module*/ MAMCR = 0; #if Fcclk 20000000 MAMTIM = 1; #else #if Fcclk 40000000 MAMTIM = 2; #else MAMTIM = 3; #endif #endif MAMCR = 2; GPIOResetInit(); init_VIC(); return; ,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,20,irq.c,文件說明 spurious_handler init_VIC install_irq,/* * irq.c: Interrupt handler C file for NXP LPC230x Family Microprocessors * * Copyright(C) 2006, NXP Semiconductor * All rights reserved. * * History * 2006.07.13 ver 1.00 Prelimnary version, first Release * */ #include “LPC23xx.h“ /* LPC23XX Peripheral Registers */ #include “type.h“ #include “irq.h“,/* * Function name: spurious_handler * * Descriptions: spurious interrupt handler . * parameters: None * Returned value: None * */ DWORD VIC_Vect_Addr0; void spurious_handler() _irq ,/* Initialize the interrupt controller */ /* * Function name: init_VIC * * Descriptions: Initialize VIC interrupt controller. * parameters: None * Returned value: None * */ void init_VIC(void) DWORD i = 0; DWORD *vect_addr, *vect_cntl; /* initialize VIC*/ VICIntEnClr = 0xffffffff; VICVectAddr = 0; VICIntSelect = 0; VICDefVectAddr=(unsigned long)spurious_handler; /* set all the vector and vector control register to 0 */ for ( i = 0; i VIC_SIZE; i+ ) vect_addr = (DWORD *)(VIC_BASE_ADDR + VECT_ADDR_INDEX + i*4); vect_cntl = (DWORD *)(VIC_BASE_ADDR + VECT_CNTL_INDEX + i*4); *vect_addr = (unsigned long)spurious_handler; /0x0; *vect_cntl = 0xF; return; ,/* * Function name: install_irq * * Descriptions: Install interrupt handler * parameters: Interrupt number, interrupt handler address, * interrupt priority * Returned value:true or false, return false if IntNum is out of range * */ DWORD install_irq( DWORD IntNumber, void *HandlerAddr, DWORD Priority ) DWORD *vect_addr; DWORD *vect_cntl; VICIntEnClr = 1 = VIC_SIZE ) return ( FALSE ); else /* find first un-assigned VIC address for the handler */ vect_addr = (DWORD *)(VIC_BASE_ADDR + VECT_ADDR_INDEX + IntNumber*4); vect_cntl = (DWORD *)(VIC_BASE_ADDR + VECT_CNTL_INDEX + IntNumber*4); *vect_addr = (DWORD)HandlerAddr; /* set interrupt vector */ *vect_cntl = Priority; VICIntEnable = 1 IntNumber; /* Enable Interrupt */ return( TRUE ); /* * End Of File */,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,21,swi_handler.s,文件說明及宏定義 SoftwareInterrupt IntEnable IntDisable,;/* ;* swi_handler.s: SWI handler file for NXP LPC230x Family Microprocessors ;* ;* Copyright(C) 2006, NXP Semiconductor ;* All rights reserved. ;* ;* History ;* 2006.09.01 ver 1.00 Prelimnary version, first Release ;* ;*/ PRESERVE8 SWI_IRQ_DIS EQU 0 SWI_IRQ_EN EQU 1 SWI_FIQ_DIS EQU 2 SWI_FIQ_EN EQU 3 I_Bit EQU 0x80 F_Bit EQU 0x40 ;The exported labels and functions EXPORT SoftwareInterrupt EXPORT IntEnable EXPORT IntDisable CODE32 AREA SWI_HANDLER,CODE,READONLY ENTRY,;* ;* SWI interrupt handler ;* Function : SoftwareInterrupt(SWI_Number) ;* The SWI_Number is 0 through 3 ;* See below “SwiFunction“ table below ;* Parameters: None ;* input : SWI_Number ;* output : None ;* SoftwareInterrupt CMP R0, #4 LDRLO PC, PC, R0, LSL #2 MOVS PC, LR SwiFunction DCD IRQDisable ;0 DCD IRQEnable ;1 DCD FIQDisable ;2 DCD FIQEnable ;3 IRQDisable MRS R0, SPSR ORR R0, R0, #I_Bit MSR SPSR_c, R0 MOVS PC, LR IRQEnable MRS R0, SPSR BIC R0, R0, #I_Bit MSR SPSR_c, R0 MOVS PC, LR FIQDisable MRS R0, SPSR ORR R0, R0, #F_Bit MSR SPSR_c, R0 MOVS PC, LR FIQEnable MRS R0, SPSR BIC R0, R0, #F_Bit MSR SPSR_c, R0 MOVS PC, LR,;* ;* Call SWI to enable IRQ * ;* Function : void IntEnable(void) * ;* Parameters: None * ;* input : None * ;* output : None * ;* IntEnable SWI SWI_IRQ_EN BX lr ; end of IntEnable ;* ;* Call SWI to disable IRQ * ;* Function : void IntDisable(void) * ;* Parameters : None * ;* input : None * ;* output : None * ;* IntDisable SWI SWI_IRQ_DIS BX lr ; end of IntDisable END ;/* ;* End Of File ;*/,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,22,應(yīng)用程序設(shè)計(jì),基于硬件的程序設(shè)計(jì)準(zhǔn)則 LPC23XX程序主要流程,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,23,基于硬件的程序設(shè)計(jì)準(zhǔn)則,軟件與硬件分離 功能獨(dú)立 功能分層 分時(shí)處理與實(shí)時(shí)處理 充分利用C語言的宏定義,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,24,LPC23XX程序主要流程,對(duì)于通用I/O端口 使用PINSELx定義端口作為通用I/O功能, 每個(gè)引腳可能有4個(gè)功能, 因此需要用2位來確定其功能 設(shè)置SCS寄存器第0位為1, 使其作為快速I/O端口 使用PINMODEx定義端口的模式, 分為上拉, 下拉, 浮空, 因此需要用2位來確定其模式 使用FIOxDIR來確定端口方向 使用FIOxMASK與FIOxCLR, FIOxSET, FIOxPIN聯(lián)合來設(shè)置端口的值,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,25,LPC23XX程序主要流程,使用通用I/O端口模擬數(shù)據(jù)總線 由于通用I/O一般情況下方向是確定的, 通?;蛘邽檩斎?或者為輸出, 要模擬數(shù)據(jù)總線, 必須在需要的時(shí)候, 隨時(shí)改變端口的方向, 可使用FIOxDIR寄存器完成此項(xiàng)工作。 實(shí)例:LCD控制 外部中斷 除EXTINT0-EXTINT3外,端口0和端口2均可以作為外部中斷源,它們共用EXTINT3這個(gè)外部中斷。,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,26,LPC23XX程序主要流程,上拉與下拉 根據(jù)實(shí)際情況合理選用。主要對(duì)上電時(shí)的初始值。上拉或下拉都是弱的,有時(shí)也用外部分電阻上/下拉。 對(duì)于輸入,上拉表示通用端口所連接的外部信號(hào)不存在時(shí), 端口值為1, 下拉為0。 對(duì)于輸出,如果沒有更改時(shí),上拉輸出為高(1), 下拉輸出為低(0)。 FIOxPIN總是可以讀出端口的狀態(tài)。 FIOxPIN對(duì)非通用I/O端口也可讀出其狀態(tài)。,2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,27,LPC23XX程序主要流程,對(duì)于內(nèi)置(片上)外設(shè), 如UART, CAN, SPI等: 使用PINSELx定義端口作為特定外設(shè)。 通常情況作為外設(shè)的引腳的方向是確定的,如果可能,還會(huì)自動(dòng)改變方向。 大多情況下,無須設(shè)置上拉或下拉模。 設(shè)置外設(shè)的參數(shù) 如果需要的話,安裝中斷服務(wù)程序 外設(shè)上電(有些外設(shè)默認(rèn)是上電的,有些不是) 啟動(dòng)外設(shè),2019/6/30,LPC23XX開發(fā)講解 華中科技大學(xué)控制科技與工程系 朱明富,28,LPC23XX程序主要流程,對(duì)于內(nèi)置(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園連鎖超市管理制度
- 校園飲水設(shè)施管理制度
- 2024年智慧樓宇項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 基于時(shí)間序列的負(fù)荷預(yù)測(cè)優(yōu)化-洞察及研究
- 節(jié)日慶典的回憶事件作文(11篇)
- 知識(shí)產(chǎn)權(quán)買賣與使用授權(quán)協(xié)議
- 古代文化常識(shí)普及:語文綜合素質(zhì)培養(yǎng)教案
- 農(nóng)村智能化設(shè)施安裝維護(hù)協(xié)議
- 計(jì)算機(jī)統(tǒng)考試題及答案
- 陜西高考面試題及答案
- 醫(yī)院物業(yè)保潔服務(wù)方案(技術(shù)方案)
- 2024年山東省煙臺(tái)市中考生物試題卷(含答案解析)
- 上海市徐匯區(qū)2023-2024學(xué)年七年級(jí)下學(xué)期數(shù)學(xué)期末練習(xí)卷
- TD/T 1044-2014 生產(chǎn)項(xiàng)目土地復(fù)墾驗(yàn)收規(guī)程(正式版)
- 文史哲與藝術(shù)中的數(shù)學(xué)智慧樹知到期末考試答案章節(jié)答案2024年吉林師范大學(xué)
- 信息光學(xué)智慧樹知到期末考試答案章節(jié)答案2024年北京工業(yè)大學(xué)
- 《HSK標(biāo)準(zhǔn)教程1》課件
- 電大財(cái)務(wù)大數(shù)據(jù)分析編程作業(yè)3
- 諾貝爾生理學(xué)或醫(yī)學(xué)獎(jiǎng)史話智慧樹知到期末考試答案2024年
- 行業(yè)分析報(bào)告模板(很全面-非常有用)
- 內(nèi)分泌系統(tǒng)疾病教學(xué)設(shè)計(jì)教案1
評(píng)論
0/150
提交評(píng)論