基于STM32和uC-OS-II的多任務(wù)設(shè)計(jì)-嵌入式系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁(yè)
基于STM32和uC-OS-II的多任務(wù)設(shè)計(jì)-嵌入式系統(tǒng)課程設(shè)計(jì)報(bào)告_第2頁(yè)
基于STM32和uC-OS-II的多任務(wù)設(shè)計(jì)-嵌入式系統(tǒng)課程設(shè)計(jì)報(bào)告_第3頁(yè)
基于STM32和uC-OS-II的多任務(wù)設(shè)計(jì)-嵌入式系統(tǒng)課程設(shè)計(jì)報(bào)告_第4頁(yè)
基于STM32和uC-OS-II的多任務(wù)設(shè)計(jì)-嵌入式系統(tǒng)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

嵌入式系統(tǒng)課程設(shè)計(jì)報(bào)告PAGE15-NORTHCHINAUNIVERSITYOFSCIENCEANDTECHNOLOGY嵌入式系統(tǒng)課程設(shè)計(jì)報(bào)告學(xué)生姓名:學(xué) 號(hào):學(xué) 院: 專業(yè)班級(jí):指導(dǎo)教師:同組成員:2016年 12 月 26日

一、課程設(shè)計(jì)目的本課程設(shè)計(jì)是在《嵌入式系統(tǒng)原理與應(yīng)用》課程的基礎(chǔ)上,通過(guò)軟件編程及仿真調(diào)試的實(shí)踐,進(jìn)一步掌握嵌入式系統(tǒng)的原理和應(yīng)用方法,是畢業(yè)設(shè)計(jì)前的一次重要實(shí)踐,為今后從事嵌入式系統(tǒng)相關(guān)工作崗位打下良好的基礎(chǔ)。二、設(shè)計(jì)題目及要求2.1設(shè)計(jì)題目:基于STM32和uC/OS-II的多任務(wù)設(shè)計(jì)2.2功能實(shí)現(xiàn):使用uC/OS-II的任務(wù)管理函數(shù)和STM32庫(kù)函數(shù)控制相應(yīng)的寄存器,完成一個(gè)多任務(wù)設(shè)計(jì)。整個(gè)設(shè)計(jì)共有4個(gè)任務(wù),驅(qū)動(dòng)一個(gè)LED指示燈閃爍、由3個(gè)LED指示燈組成的流水燈、驅(qū)動(dòng)蜂鳴器和利用swd方式進(jìn)行printf輸出。2.3設(shè)計(jì)要求:理解和熟練使用KEIL軟件、STM32寄存器、STM32庫(kù)函數(shù)和uC/OS-II任務(wù)管理函數(shù),用KEIL軟件完成編程和調(diào)試,下載到開(kāi)發(fā)板中實(shí)現(xiàn)4個(gè)設(shè)定的任務(wù),并完成課程設(shè)計(jì)報(bào)告。四個(gè)任務(wù)分別為:(1)驅(qū)動(dòng)1個(gè)LED指示燈閃爍、(2)由3個(gè)LED指示燈組成流水燈(3)驅(qū)動(dòng)蜂鳴器發(fā)出響聲。(4)利用swd方式進(jìn)行printf輸出。三、設(shè)計(jì)原理說(shuō)明3.1硬件說(shuō)明本次課程設(shè)計(jì)主要使用的是STM32神舟IV號(hào)開(kāi)發(fā)板為基礎(chǔ)進(jìn)行課程設(shè)計(jì)的,本節(jié)將詳細(xì)介紹神舟IV號(hào)開(kāi)發(fā)板的各部分硬件原理與實(shí)現(xiàn)。(1)開(kāi)發(fā)板資源圖(2)MCU開(kāi)發(fā)板的處理器是STM32F107VCT6,該處理器基于ARMV7架構(gòu)的Cortex-M3內(nèi)核,主頻72Mhz,內(nèi)部含有256K字節(jié)的FLASH和64K字節(jié)的SRAM,LQFP100封裝。(3)蜂鳴器開(kāi)發(fā)板板載一個(gè)無(wú)源蜂鳴器,用于產(chǎn)品告警或聲音提醒。蜂鳴器連接到了處理器的PA3管腳,當(dāng)處理器的PA3管腳輸出低電平時(shí)蜂鳴器開(kāi)始鳴響,反之處理器的PA3管腳輸出高電平時(shí)蜂鳴器停止鳴響.(4)指示燈開(kāi)發(fā)板提供了1個(gè)電源指示燈和4路通用LED指示燈。電源指示燈指示3.3V電源是否正常。4路通用LED指示燈可以用于指示STM32開(kāi)發(fā)板的狀態(tài)。用戶LED指示燈由GPIO管腳控制LED燈的亮滅,當(dāng)GPIO管腳輸出低電平時(shí),LED指示燈亮。反之,當(dāng)GPIO管腳輸出高電平時(shí),LED指示燈滅。這四個(gè)LED指示燈分別由PD2、PD3、PD4和PD7控制。(5)JTAG仿真調(diào)試開(kāi)發(fā)板提供標(biāo)準(zhǔn)的20針JTAG接口,可以直接和JLINKV8仿真器連接,下載程序,調(diào)試仿真;(6)晶振電路STM32F107內(nèi)部已經(jīng)包含了8MHz高速內(nèi)部RC振蕩電路,但是其精準(zhǔn)度不是很高;為此在外部增加了25MHz的晶振電路,為系統(tǒng)的可靠工作提供時(shí)序基準(zhǔn)。(7)設(shè)計(jì)中用到的管腳芯片引腳開(kāi)發(fā)板模塊PD2LED1PD3LED2PD4LED3PD7LED4PA3蜂鳴器3.2STM32寄存器使用說(shuō)明設(shè)計(jì)中,只用到時(shí)鐘和GPIO相關(guān)的寄存器。(1)STM32F107VC中共有80個(gè)GPIO,分成A、B、C、D、E五個(gè)組,每組有13-16個(gè)可用的I/O端口,每個(gè)GPIO可以自由編程。通過(guò)各個(gè)寄存器來(lái)控制GPIO輸出高電平或者是低電平。每個(gè)GPIO有7個(gè)寄存器來(lái)控制,其中CRL和CRH用來(lái)確定I/O管腳的方向和速率以及何種驅(qū)動(dòng)方式,BSRR可直接修改某一個(gè)CPIO引腳的高低電平,BRR可將GPIO置零。(2)在使用配置GPIO寄存器之前,都要先配置GPIO的時(shí)鐘。通過(guò)RCC寄存器當(dāng)中的CR、CFGR和CIR來(lái)設(shè)置系統(tǒng)時(shí)鐘。GPIO掛在APB2總線上,可對(duì)APB2ENR寄存器設(shè)置來(lái)確定所用到的GPIO時(shí)鐘。(3)μC/OS-II用Cortex-M3的SysTick定時(shí)器產(chǎn)生操作系統(tǒng)需要的滴答時(shí)鐘,作為整個(gè)系統(tǒng)的根基。SysTick定時(shí)器的四個(gè)寄存器SysTick_CTRL、SysTick_LOAD、SysTick_VAL、SysTick_CALIB控制每隔一定時(shí)間產(chǎn)生一個(gè)中斷使μC/OS-II系統(tǒng)能進(jìn)行多任務(wù)控制。(3)用到的寄存器:CRL、CRH、BRR、BSRR、CR、CFGR、CIR、APB2ENR、SysTICK_CTRL、SysTICK_LOAD、SysTICK_VAL、SysTICK_CALIB3.3STM32庫(kù)函數(shù)使用說(shuō)明設(shè)計(jì)中只用到時(shí)鐘和GPIO相關(guān)的庫(kù)函數(shù)。(1)直接配置寄存器開(kāi)發(fā),如果代碼比較龐大,可讀性差。ST針對(duì)STM32封裝好一個(gè)軟件封裝庫(kù),開(kāi)發(fā)者可調(diào)用函數(shù)接口(API,ApplicationProgramInterface)來(lái)完成相應(yīng)的開(kāi)發(fā)工作,配置寄存器的工作由接口函數(shù)完成,使開(kāi)發(fā)人員脫離最底層的寄存器操作,易于閱讀,維護(hù)成本低。庫(kù)是架設(shè)在寄存器與用戶驅(qū)動(dòng)層之間的代碼,向下處理與寄存器直接相關(guān)的配置,向上為用戶提供配置寄存器的接口。庫(kù)開(kāi)發(fā)方式與直接配置寄存器的方式的區(qū)別:(2)庫(kù)目錄和文件簡(jiǎn)介L(zhǎng)ibraries文件夾下是驅(qū)動(dòng)庫(kù)的源代碼及啟動(dòng)文件。在使用庫(kù)開(kāi)發(fā)時(shí),需要把libraries目錄下的相關(guān)庫(kù)函數(shù)文件添加到工程中。進(jìn)入Libraries文件夾看到,關(guān)于內(nèi)核與外設(shè)的庫(kù)文件分別存放在CMSIS和STM32F10x_StdPeriph_Driver文件夾中。CMSIS(CortexMicrocontrollerSoftwareInterfaceStandard):ARM將所有Cortex芯片廠商的產(chǎn)品的軟件接口標(biāo)準(zhǔn)化,制定了CMSIS標(biāo)準(zhǔn)。CMSIS層起著承上啟下的作用,一方面該層對(duì)硬件寄存器層進(jìn)行了統(tǒng)一的實(shí)現(xiàn),屏蔽了不同廠商對(duì)Cortex-M系列微處理器核內(nèi)外設(shè)寄存器的不同定義,另一方面又向上層的操作系統(tǒng)和應(yīng)用層提供接口,簡(jiǎn)化了應(yīng)用程序開(kāi)發(fā)的難度。Libraries\CMSIS\CM3文件夾下又分為CoreSupport和DeviceSupport文件夾。在CoreSupport中的是M3核通用的源文件core_cm3.c和頭文件core_cm3.h,作用是為采用Cortex-M3核設(shè)計(jì)SOC的芯片商設(shè)計(jì)的芯片外設(shè)提供一個(gè)進(jìn)入M3內(nèi)核的接口。這兩個(gè)文件在其它公司的Cortex-M3系列芯片也是相同的。我們只需把這個(gè)文件加進(jìn)我們的工程文件即可。在DeviceSupport文件夾下的是啟動(dòng)文件、外設(shè)寄存器定義&中斷向量定義層的一些文件,由ST公司提供。system_stm32f10x.c文件的功能是設(shè)置系統(tǒng)時(shí)鐘和總線時(shí)鐘,該文件中包含了stm32f10x.h這個(gè)頭文件。啟動(dòng)文件要選擇startup_stm32f10x_cl.s。系統(tǒng)啟動(dòng)文件由匯編編寫(xiě),不同的文件對(duì)應(yīng)不同的芯片型號(hào)。啟動(dòng)文件是任何處理器在上電復(fù)位之后最先運(yùn)行的一段匯編程序。在我們編寫(xiě)的c語(yǔ)言代碼運(yùn)行之前,需要由匯編為c語(yǔ)言的運(yùn)行建立一個(gè)合適的環(huán)境,接下來(lái)才能運(yùn)行我們的程序。所以我們也要把啟動(dòng)文件添加進(jìn)我們的的工程中去,其作用相當(dāng)于bootloader。STM32F10x_StdPeriph_Driver:該文件夾下有inc和src兩個(gè)文件夾,都屬于CMSIS的設(shè)備外設(shè)函數(shù)部分。src里面是每個(gè)設(shè)備外設(shè)的驅(qū)動(dòng)程序。src和inc文件夾里的就是ST公司針對(duì)每個(gè)STM32外設(shè)而編寫(xiě)的庫(kù)函數(shù)文件,每個(gè)外設(shè)對(duì)應(yīng)一個(gè).c和.h后綴的文件。我們把這類外設(shè)文件統(tǒng)稱為:stm32f10x_ppp.c或stm32f10x_ppp.h文件,ppp表示外設(shè)名稱。如針對(duì)GPIO外設(shè),在src文件夾下有一個(gè)stm32f10x_gpio.c源文件,在inc文件夾下有一個(gè)stm32f10x_gpio.h頭文件,設(shè)計(jì)中用到了STM32的GPIO,則至少要把這兩個(gè)文件包含到工程里。這兩個(gè)文件夾中,還有一個(gè)很特別的misc.c文件,這個(gè)文件提供了外設(shè)對(duì)內(nèi)核中的NVIC(中斷向量控制器)的訪問(wèn)函數(shù),在配置中斷時(shí),我們必須把這個(gè)文件添加到工程中。在用庫(kù)建立一個(gè)完整的工程時(shí),還需要添加user目錄下的stm32f10x_it.c、stm32f10x_it.h、stm32f10x_conf.h這三個(gè)文件。stm32f10x_it.c用來(lái)編寫(xiě)中斷服務(wù)函數(shù);stm32f10x_conf.h用來(lái)配置使用了什么外設(shè)的頭文件,用這個(gè)頭文件我們可以很方便地增加或刪除外設(shè)驅(qū)動(dòng)函數(shù)庫(kù)。庫(kù)文件直接包含進(jìn)工程即可,絲毫不用修改,而有的文件就要我們?cè)谑褂玫臅r(shí)候根據(jù)具體的需要進(jìn)行配置。(3)用到的庫(kù)函數(shù):SystemInit、RCC_APB2PeriphClockCmd、SysTick_Config、GPIO_Init、GPIO_SetBits、GPIO_ResetBits。3.4uC/OS-II任務(wù)管理函數(shù)使用說(shuō)明設(shè)計(jì)中用到的任務(wù)管理函數(shù)包括任務(wù)堆棧的建立、任務(wù)的創(chuàng)建和uC/OS-II的初始化和任務(wù)的啟動(dòng)。(1)UCOSII的前身是UCOS,最早出自于1992年美國(guó)嵌入式系統(tǒng)專家JeanJ.Labrosse把UCOS的源碼發(fā)布在BBS上。目前最新的版本是UCOSIII,但是現(xiàn)在使用最為廣泛的還是UCOSII。UCOSII是一個(gè)可裁減的、搶占式、實(shí)時(shí)多任務(wù)內(nèi)核,具有高度可移植性,特別適合于微處理器和控制器,已經(jīng)移植到近40多種處理器體系上,涵蓋了從8位到64位各種CPU(包括DSP)。UCOSII(V2.91版本)體系結(jié)構(gòu)如下圖所示:(2)uC/OS-II操作系統(tǒng)內(nèi)核的主要工作就是對(duì)任務(wù)進(jìn)行管理和調(diào)度,任務(wù)的執(zhí)行代碼通常是一個(gè)無(wú)限循環(huán)結(jié)構(gòu)。從程序設(shè)計(jì)的角度來(lái)看,一個(gè)uC/OS-II任務(wù)的代碼就是一個(gè)C語(yǔ)言函數(shù),任務(wù)的參數(shù)是一個(gè)void類型的指針,但是這些函數(shù)是由主函數(shù)main()來(lái)負(fù)責(zé)創(chuàng)建和啟動(dòng),然后由操作系統(tǒng)負(fù)責(zé)調(diào)度和運(yùn)行,而不是調(diào)用的關(guān)系。OSTaskCreate()為創(chuàng)建任務(wù)的函數(shù),OSStart()為啟動(dòng)任務(wù)的函數(shù)。使用OSStart()之后,任務(wù)就交由操作系統(tǒng)來(lái)管理和調(diào)度。每個(gè)任務(wù)都必須具有一個(gè)唯一的優(yōu)先級(jí)別,每一個(gè)級(jí)別都用一個(gè)數(shù)字來(lái)表示,比如數(shù)字為0~255.在存儲(chǔ)器中按數(shù)據(jù)“后進(jìn)先出”的原則組織的連續(xù)存儲(chǔ)空間稱為堆棧,為了滿足任務(wù)切換和響應(yīng)中斷時(shí)保存CPU寄存器中的內(nèi)容及存儲(chǔ)任務(wù)私有數(shù)據(jù)的需要,每個(gè)任務(wù)都應(yīng)該配有自己的堆棧。任務(wù)堆棧是任務(wù)的重要組成部分。使用數(shù)據(jù)類型OS_STK來(lái)定義任務(wù)堆棧,即定義一個(gè)OS_STK類型的數(shù)組。 在使用uC/OS-II的所有服務(wù)之前,必須調(diào)用uC/OS-II的初始化函數(shù)OSInit(),對(duì)uC/OS-II自身的運(yùn)行環(huán)境進(jìn)行初始化。為了能使用習(xí)慣的方法來(lái)使任務(wù)延時(shí),uC/OS-II提供了一個(gè)可以用時(shí)、分、秒為參數(shù)的任務(wù)延時(shí)函數(shù)OSTimeDlyHMSM(),比如延時(shí)1秒可用OSTimeDlyHMSM(0,0,0,1000).(3)需要用到的任務(wù)管理函數(shù):OSInit、OSTaskCreate、OSStart、OSTimeDlyHMSM四、軟件設(shè)計(jì)(含流程圖、帶注釋的程序清單)系統(tǒng)上電開(kāi)始運(yùn)行系統(tǒng)上電開(kāi)始運(yùn)行初始化初始化創(chuàng)建任務(wù)TASK_1創(chuàng)建任務(wù)TASK_4創(chuàng)建任務(wù)TASK_3創(chuàng)建任務(wù)TASK_2創(chuàng)建任務(wù)TASK_1創(chuàng)建任務(wù)TASK_4創(chuàng)建任務(wù)TASK_3創(chuàng)建任務(wù)TASK_2執(zhí)行OSSTART()函數(shù)后開(kāi)始STM32執(zhí)行相應(yīng)任務(wù)執(zhí)行OSSTART()函數(shù)后開(kāi)始STM32執(zhí)行相應(yīng)任務(wù)執(zhí)行OSSTART()函數(shù)后開(kāi)始STM32執(zhí)行相應(yīng)任務(wù)執(zhí)行OSSTART()函數(shù)后開(kāi)始執(zhí)行相應(yīng)任務(wù)執(zhí)行OSSTART()函數(shù)后開(kāi)始執(zhí)行相應(yīng)任務(wù)/**************main.c**************/#include"includes.h"#include"stm32f10x.h"#include"stm32f10x_rcc.h"#include"stdio.h"constuint32_tSystemFrequency=72000000;#defineRCC_GPIO_LEDRCC_APB2Periph_GPIOD#defineGPIO_LEDGPIOD#defineDS1_PINGPIO_Pin_4#defineITM_Port8(n)(*((volatileunsignedchar*)(0xE0000000+4*n)))#defineITM_Port16(n)(*((volatileunsignedshort*)(0xE0000000+4*n)))#defineITM_Port32(n)(*((volatileunsignedlong*)(0xE0000000+4*n)))#defineDEMCR(*((volatileunsignedlong*)(0xE000EDFC)))#defineTRCENA0x01000000GPIO_InitTypeDefGPIO_InitStructure; #define TASK_1_PRIO 5#define TASK_2_PRIO 6#define TASK_3_PRIO 7#defineTASK_4_PRIO8#define TASK_1_STK_SIZE 100#define TASK_2_STK_SIZE 100#define TASK_3_STK_SIZE 100#defineTASK_4_STK_SIZE 100OS_STKtask_1_stk[TASK_1_STK_SIZE]; //定義堆棧OS_STKtask_2_stk[TASK_2_STK_SIZE]; //定義堆棧OS_STKtask_3_stk[TASK_3_STK_SIZE]; //定義堆棧OS_STKtask_4_stk[TASK_4_STK_SIZE]; //定義堆棧struct__FILE{inthandle;};FILE__stdout;FILE__stdin;/***重寫(xiě)fputc函數(shù)**/intfputc(intch,FILE*f){if(DEMCR&TRCENA){while(ITM_Port32(0)==0);ITM_Port8(0)=ch;}return(ch);}voidTask_1(void*arg){while(1){ GPIO_ResetBits(GPIO_LED,DS1_PIN); //點(diǎn)亮LED3 OSTimeDlyHMSM(0,0,0,1000); GPIO_SetBits(GPIO_LED,DS1_PIN); //熄滅LED3 OSTimeDlyHMSM(0,0,0,1000); }}voidTask_2(void*arg){while(1){ GPIO_ResetBits(GPIO_LED,GPIO_Pin_2); //點(diǎn)亮LED1 OSTimeDlyHMSM(0,0,0,1500); GPIO_SetBits(GPIO_LED,GPIO_Pin_2); //熄滅LED1 GPIO_ResetBits(GPIO_LED,GPIO_Pin_3); //點(diǎn)亮LED2 OSTimeDlyHMSM(0,0,0,1500); GPIO_SetBits(GPIO_LED,GPIO_Pin_3); //熄滅LED2 GPIO_ResetBits(GPIO_LED,GPIO_Pin_7); //點(diǎn)亮LED4 OSTimeDlyHMSM(0,0,0,1500); GPIO_SetBits(GPIO_LED,GPIO_Pin_7); //熄滅LED4}}voidTask_3(void*arg){while(1){ GPIO_ResetBits(GPIOA,GPIO_Pin_3); //無(wú)源蜂鳴器響 OSTimeDlyHMSM(0,0,0,1000); GPIO_SetBits(GPIOA,GPIO_Pin_3); //無(wú)源蜂鳴器不響 OSTimeDlyHMSM(0,0,0,1500); }}voidTask_4(void*arg){while(1){ printf("hello,world!\n");}}intmain(void){ SystemInit(); //配置系統(tǒng)時(shí)鐘為72M SysTick_Config(SystemFrequency/OS_TICKS_PER_SEC); //使能SysTick定時(shí)器 RCC_APB2PeriphClockCmd(RCC_GPIO_LED|RCC_APB2Periph_GPIOA,ENABLE); //使能GPIOA和GPIOD的時(shí)鐘 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIO_LED,&GPIO_InitStructure); //LED燈相關(guān)的GPIO初始化 GPIO_Init(GPIOA,&GPIO_InitStructure);//無(wú)源蜂鳴器相關(guān)的GPIO初始化 GPIO_SetBits(GPIO_LED,GPIO_Pin_All); //熄滅所有LED指示燈 GPIO_SetBits(GPIOA,GPIO_Pin_3); //讓無(wú)源蜂鳴器不響 OSInit(); //操作系統(tǒng)初始化 OSTaskCreate(Task_1,(void*)0,&task_1_stk[TASK_1_STK_SIZE-1],TASK_1_PRIO); //創(chuàng)建任務(wù)Task_1 OSTaskCreate(Task_2,(void*)0,&task_2_stk[TASK_2_STK_SIZE-1],TASK_2_PRIO); //創(chuàng)建任務(wù)Task_2 OSTaskCreate(Task_3,(void*)0,&task_3_stk[TASK_3_STK_SIZE-1],TASK_3_PRIO); //創(chuàng)建任務(wù)Task_3 OSTaskCreate(Task_4,(void*)0,&task_4_stk[TASK_4_STK_SIZE-1],TASK_4_PRIO); //創(chuàng)建任務(wù)Task_4 OSStart(); //啟動(dòng)操作系統(tǒng) }/******************************************************************************//*STM32DBG.INI:STM32DebuggerInitializationFile*//******************************************************************************///<<<UseConfigurationWizardinContextMenu>>>///******************************************************************************//*ThisfileispartoftheuVision/ARMdevelopmenttools.*//*Copyright(c)2005-2007KeilSoftware.Allrightsreserved.*//*Thissoftwaremayonlybeusedunderthetermsofavalid,current,*//*enduserlicencefromKEILforacompatibleversionofKEILsoftware*//*developmenttools.Nothingelsegivesyoutherighttousethissoftware.*//******************************************************************************/FUNCvoidDebugSetup(void){//<h>DebugMCUConfiguration//<o1.0>DBG_SLEEP<i>DebugSleepMode//<o1.1>DBG_STOP<i>DebugStopMode//<o1.2>DBG_STANDBY<i>DebugStandbyMode//<o1.5>TRACE_IOEN<i>TraceI/OEnable//<o1.6..7>TRACE_MODE<i>TraceMode//<0=>Asynchronous//<1=>Synchronous:TRACEDATASize1//<2=>Synchronous:TRACEDATASize2//<3=>Synchronous:TRACEDATASize4//<o1.8>DBG_IWDG_STOP<i>IndependantWatchdogStoppedwhenCoreishalted//<o1.9>DBG_WWDG_STOP<i>WindowWatchdogStoppedwhenCoreishalted//<o1.10>DBG_TIM1_STOP<i>Timer1StoppedwhenCoreishalted//<o1.11>DBG_TIM2_STOP<i>Timer2StoppedwhenCoreishalted//<o1.12>DBG_TIM3_STOP<i>Timer3StoppedwhenCoreishalted//<o1.13>DBG_TIM4_STOP<i>Timer4StoppedwhenCoreishalted//<o1.14>DBG_CAN_STOP<i>CANStoppedwhenCoreishalted//</h>_WDWORD(0xE0042004,0x00000027);//DBGMCU_CR_WDWORD(0xE000ED08,0x20000000);//SetupVectorTableOffsetRegister}DebugSetup();//DebuggerSetup五、設(shè)計(jì)總結(jié)本學(xué)期為期一周的嵌入式課程設(shè)計(jì)在不知不覺(jué)中結(jié)束了,雖說(shuō)這次課程設(shè)計(jì)時(shí)間不是很長(zhǎng),但是感覺(jué)自己收獲頗豐,不僅學(xué)習(xí)到了一些新知識(shí),回顧了以前的一些快要遺忘的知識(shí)點(diǎn),而且使自己的學(xué)習(xí)目標(biāo)更加明確,學(xué)習(xí)方法更加完善,也體會(huì)到軟件開(kāi)發(fā)的趣味,更加清楚地認(rèn)識(shí)到了自己在軟件開(kāi)發(fā)及學(xué)習(xí)上的一些不足之處,課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.隨著網(wǎng)絡(luò)在人們生活中的運(yùn)用越來(lái)越廣泛和嵌入式技術(shù)在日常生活中的地位日益凸顯。這對(duì)我們這些學(xué)習(xí)有關(guān)網(wǎng)絡(luò)以及計(jì)算機(jī)專業(yè)的學(xué)生來(lái)說(shuō)既是一種挑戰(zhàn),又是一個(gè)難得的機(jī)會(huì)。通過(guò)這次嵌入式的課程設(shè)計(jì)讓我們初步了解了BOAWEB服務(wù)器的設(shè)計(jì)過(guò)程和工作原理,掌握了一些編程能力。對(duì)我們的網(wǎng)絡(luò)編程有了很大的提高,與此同時(shí),我們還學(xué)到了一些專業(yè)知識(shí)之外的東西。在課程設(shè)計(jì)過(guò)程中,我們了解到課程設(shè)計(jì)不光光是埋頭做設(shè)計(jì),也是同學(xué)之間互相學(xué)習(xí)和互相交流經(jīng)驗(yàn)和知識(shí)的機(jī)會(huì)。也是我們大家向老師提出疑問(wèn)和學(xué)以致用的機(jī)會(huì),這讓我們不會(huì)成為只知道理論而不會(huì)將理論化為實(shí)踐中去的書(shū)呆子。我覺(jué)得課程設(shè)計(jì)就是一個(gè)復(fù)習(xí)課堂上學(xué)到知識(shí)的機(jī)會(huì),也是一個(gè)加強(qiáng)學(xué)生動(dòng)手能力設(shè)計(jì)的機(jī)會(huì)。更是一個(gè)讓學(xué)習(xí)得到升華的過(guò)程。在該次課程設(shè)計(jì)的初期,我們將任務(wù)分配好,每個(gè)人各就其職,各盡所能。當(dāng)然,在一開(kāi)始我們就遇到了一些問(wèn)題,解決問(wèn)題的方法是跑到圖書(shū)館查看有關(guān)書(shū)籍,或上網(wǎng)查閱有關(guān)信息,或請(qǐng)教老師。終于在大家的相互幫組和大家的齊心協(xié)力下,我們最終完成了該次的課程設(shè)計(jì)。這次課程設(shè)計(jì)不僅考察了我們對(duì)課堂上所學(xué)專業(yè)知識(shí)的理解程度,也鍛煉了我們的動(dòng)手能力。提高了我們獨(dú)立思考文理,解決問(wèn)題的能力??傮w上看,我覺(jué)得這次課程設(shè)計(jì)是我自身的知識(shí)豐富了不少,但同時(shí)也發(fā)現(xiàn)了自己的不足之處。例如在動(dòng)手方面,和知識(shí)融合方面,不能與實(shí)踐相結(jié)合。軟件操作不夠熟練,不能靈活運(yùn)用。是我了解要先學(xué)好理論知識(shí)才能很好地與實(shí)踐相結(jié)合,才能熟練地運(yùn)用到生活中。設(shè)計(jì)成績(jī): 教師簽名: 年 月 日基于C8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測(cè)系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營(yíng)養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開(kāi)發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測(cè)試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開(kāi)發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測(cè)儀開(kāi)發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺(tái)控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開(kāi)發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時(shí)內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測(cè)儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開(kāi)發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動(dòng)檢測(cè)儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測(cè)量?jī)x的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號(hào)檢測(cè)儀基于單片機(jī)的電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)Pico專用單片機(jī)核的可測(cè)性設(shè)計(jì)研究基于MCS-51單片機(jī)的熱量計(jì)基于雙單片機(jī)的智能遙測(cè)微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實(shí)踐研究基于單片機(jī)的輪軌力檢測(cè)基于單片機(jī)的GPS定位儀的研究與實(shí)現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時(shí)控和計(jì)數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測(cè)量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動(dòng)低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機(jī)的氚表面污染測(cè)量?jī)x的研制基于單片機(jī)的紅外測(cè)油儀的研究96系列單片機(jī)仿真器研究與設(shè)計(jì)基于單片機(jī)的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于MSP430單片機(jī)的電梯門機(jī)控制器的研制基于單片機(jī)的氣體測(cè)漏儀的研究基于三菱M16C/6N系列單片機(jī)的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機(jī)和DSP的變壓器油色譜在線監(jiān)測(cè)技術(shù)研究基于單片機(jī)的膛壁溫度報(bào)警系統(tǒng)設(shè)計(jì)基于AVR單片機(jī)的低壓無(wú)功補(bǔ)償控制器的設(shè)計(jì)基于單片機(jī)船舶電力推進(jìn)電機(jī)監(jiān)測(cè)系統(tǒng)基于單片機(jī)網(wǎng)絡(luò)的振動(dòng)信號(hào)的采集系統(tǒng)基于單片機(jī)的大容量數(shù)據(jù)存儲(chǔ)技術(shù)的應(yīng)用研究基于單片機(jī)的疊圖機(jī)研究與教學(xué)方法實(shí)踐基于單片機(jī)嵌入式Web服務(wù)器技術(shù)的研究及實(shí)現(xiàn)基于AT89S52單片機(jī)的通用數(shù)據(jù)采集系統(tǒng)基于單片機(jī)的多道脈沖幅度分析儀研究機(jī)器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機(jī)控制系統(tǒng)基于單片機(jī)的控制系統(tǒng)在PLC虛擬教學(xué)實(shí)驗(yàn)中的應(yīng)用研究基于單片機(jī)系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機(jī)的莫爾斯碼自動(dòng)譯碼系統(tǒng)設(shè)計(jì)與研究基于單片機(jī)的模糊控制器在工業(yè)電阻爐上的應(yīng)用研究基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究與開(kāi)發(fā)基于Cygnal單片機(jī)的μC/OS-Ⅱ的研究基于單片機(jī)的一體化智能差示掃描量熱儀系統(tǒng)研究基于TCP/IP協(xié)議的單片機(jī)與Internet互聯(lián)的研究與實(shí)現(xiàn)變頻調(diào)速液壓電梯單片機(jī)控制器的研究基于單片機(jī)γ-免疫計(jì)數(shù)器自動(dòng)換樣功能的研究與實(shí)現(xiàn)基于單片機(jī)的倒立擺控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)單片機(jī)嵌入式以太網(wǎng)防盜報(bào)警系統(tǒng)基于51單片機(jī)的嵌入式Internet系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)單片機(jī)監(jiān)測(cè)系統(tǒng)在擠壓機(jī)上的應(yīng)用HYPERLINK"/deta

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論