實(shí)驗(yàn)一、STM32的開發(fā)環(huán)境與簡單工程
一、實(shí)驗(yàn)?zāi)康?/font>1、熟悉STM32開發(fā)板的開發(fā)環(huán)境; 2、熟悉MDK創(chuàng)建和配置STM32工程項(xiàng)目的基本流程; 3、熟悉STM32官方庫的應(yīng)用; 4、規(guī)范編程格式。 二、實(shí)驗(yàn)內(nèi)容本次實(shí)驗(yàn)配置MDK集成開發(fā)環(huán)境,新建一個(gè)簡單的工程文件,添加STM32官方庫并配置工程,編譯運(yùn)行這個(gè)工程文件。下載已經(jīng)編譯好的文件到開發(fā)板中運(yùn)行。學(xué)會在程序中設(shè)置斷點(diǎn),觀察系統(tǒng)內(nèi)存和變量,為調(diào)試應(yīng)用程序打下基礎(chǔ)。 三、預(yù)備知識基本單片機(jī)硬件知識、單片機(jī)軟件編程語言、程序創(chuàng)建和調(diào)試的基本方法。 四、實(shí)驗(yàn)設(shè)備及工具硬件:STM32開發(fā)平臺 軟件:STM32官方庫;PC機(jī)操作系統(tǒng)Windows 98、Windows 2000或Windows XP;KEIL MDK集成開發(fā)環(huán)境;串口轉(zhuǎn)usb驅(qū)動。 五、實(shí)驗(yàn)步驟1、在準(zhǔn)備存放工程文件的目錄下創(chuàng)建一新文件夾,命名為Proj_GPIO;在Proj_GPIO文件夾里面分別再創(chuàng)建四個(gè)文件夾:CMSIS、USER、LIB、OBJ。如圖1。 其中CMSIS(Cortex Microcontroller Software Interface Standard)用于存放Cortex-M 處理器系列的與供應(yīng)商無關(guān)的軟件抽象層和啟動相關(guān)的代碼文件; USER用于存放我們自己編寫的代碼文件(含自己移植的底層驅(qū)動),還有MDK工程; LIB存放所有的官方底層驅(qū)動庫文件; OBJ用于工程輸出的過程文件和最終的二進(jìn)制文件。 圖1 2、將官方庫STM32F10x_StdPeriph_Lib_V3.5.0.rar解壓。 1)把STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下的所有文件和STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下的所有文件都到第一步所創(chuàng)建的CMSIS文件夾中; 2)把STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver目錄下的文件(目錄inc和scr)復(fù)制到第一步創(chuàng)建的LIB文件夾中; 3)把STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template目錄下的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h三個(gè)文件復(fù)制到USER文件夾中。 3、打開MDK軟件,新建一個(gè)工程Proj_GPIO保存到Proj_GPIO/USER中。CPU選擇STM32F103ZE,如圖2;圖2 4、新建一個(gè)空文檔main.c保存到USER中,然后根據(jù)絕對路徑將文件對應(yīng)添加到工程中,如右圖。 5、配置工程屬性,右鍵點(diǎn)擊工程文件中的Target 1選擇Options for Target ‘Target 1’打開工程選項(xiàng)對話框。做如下修改: 1)Output選項(xiàng)勾選Create HEX File,然后點(diǎn)擊Select Folder for Objects按鈕定位輸出文件保存目錄到工程的OBJ文件; 2)Listing選項(xiàng),同樣點(diǎn)擊Select Folder for Listings定位輸出文件保存目錄到工程的OBJ文件; 3)C/C++選項(xiàng),Define中填入STM32F10X_HD, USE_STDPERIPH_DRIVER系統(tǒng)的兩個(gè)基本宏定義;配置Include Paths屬性,加入工程中包含頭文件的目錄;如右圖 4)后面Debug和Utilities兩個(gè)選項(xiàng)如果使用J-link或者其他調(diào)試器則需要做對應(yīng)的修改,否則不用。 6、根據(jù)實(shí)驗(yàn)任務(wù)硬件原理圖編寫代碼實(shí)現(xiàn)四個(gè)按鍵控制led燈亮滅。 1)其中用戶按鍵和LED原理圖如下: 圖5 2)根據(jù)原理圖初始化各IO引腳,編寫控制函數(shù),然后主函數(shù)中調(diào)用。 、 3)代碼編寫完成后編譯鏈接,通過下載軟件將hex文件下載到實(shí)驗(yàn)板中運(yùn)行驗(yàn)證。
實(shí)驗(yàn)二、ucos操作系統(tǒng)的移植一、實(shí)驗(yàn)?zāi)康?/font>1、掌握ucos到STM32的移植方法; 2、熟悉通過C語音處理底層寄存器的技巧; 3、了解STM32在ucos任務(wù)切換時(shí)的處理; 4、規(guī)范編程格式。 二、實(shí)驗(yàn)內(nèi)容本次實(shí)驗(yàn)通過用C語言編寫6個(gè)操作系統(tǒng)相關(guān)函數(shù)和用匯編語言編寫4個(gè)與處理器相關(guān)的函數(shù),將實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ移植到芯片STM32F103ZE中,并創(chuàng)建兩個(gè)用戶任務(wù)點(diǎn)亮led。學(xué)會操作系統(tǒng)的移植方法,深入掌握嵌入式操作系統(tǒng)μC/OS-Ⅱ在初始化任務(wù)和任務(wù)調(diào)度的實(shí)現(xiàn)方法,直觀了解實(shí)時(shí)操作系統(tǒng)的體系結(jié)構(gòu)和設(shè)計(jì)思想。 三、預(yù)備知識基本單片機(jī)硬件知識、單片機(jī)軟件編程語言、程序創(chuàng)建和調(diào)試的基本方法、ucos操作系統(tǒng)的任務(wù)調(diào)度原理、STM32的寄存器架構(gòu)。 四、實(shí)驗(yàn)設(shè)備及工具硬件:STM32開發(fā)平臺 軟件:STM32官方庫;PC機(jī)操作系統(tǒng)Windows 98、Windows 2000或Windows XP;KEIL MDK集成開發(fā)環(huán)境;串口轉(zhuǎn)usb驅(qū)動。 五、實(shí)驗(yàn)步驟1、按實(shí)驗(yàn)一的步驟新建一個(gè)工程Proj2_ucos。 2、將移植好的ucos源代碼整個(gè)拷貝到我們的新建的工程目錄中,然后按對應(yīng)的文件路徑添加到keil工程里(os_dbg.c和os_dbg_r.c只添加一個(gè)),如圖6和圖7。

圖6 圖7
3、配置工程相關(guān)屬性(與實(shí)驗(yàn)一庫應(yīng)用配置一樣),記得將ucos的頭文件路徑添加到工程的include path上面去,找到stm2f10x_it.c的PendSV_Handler函數(shù)注釋掉,main文件中將includes.h包含進(jìn)來,主函數(shù)為空,編譯通過。 4、在main.c中建立sys_init()函數(shù)編寫操作系統(tǒng)運(yùn)行需要的硬件相關(guān)初始化(見代碼),然后修改stm32f10x_it.c中的系統(tǒng)心跳中斷函數(shù)并加入頭文件includes.h(見代碼,)。 5、編寫用戶任務(wù)函數(shù)和相關(guān)的初始化。 6、最后在主函數(shù)中創(chuàng)建任務(wù)并啟動操作系統(tǒng)。編譯并調(diào)試運(yùn)行。 實(shí)驗(yàn)三、ucos操作系統(tǒng)的任務(wù)通信
一、實(shí)驗(yàn)?zāi)康?/font>1、掌握ucos任務(wù)間通信的各種方法; 2、了解嵌入式操作系統(tǒng)任務(wù)間可能出現(xiàn)的資源沖突; 3、掌握ucos中信號量和郵箱的應(yīng)用; 4、規(guī)范編程格式。 二、實(shí)驗(yàn)內(nèi)容本次實(shí)驗(yàn)通過用C語言編寫基于ucos操作系統(tǒng)下的多個(gè)用戶任務(wù),并且實(shí)現(xiàn)任務(wù)間的正確通信。通過信號量處理公共資源的等待和使用,通過郵箱實(shí)現(xiàn)任務(wù)間的多個(gè)數(shù)據(jù)變量的傳遞。建立正確的操作系統(tǒng)編程理念,深入掌握μC/OS-Ⅱ中信號量與郵箱的創(chuàng)建和使用,了解各任務(wù)間通信方法的大概原理及優(yōu)缺點(diǎn)。 三、預(yù)備知識基本單片機(jī)硬件知識、單片機(jī)軟件編程語言、程序創(chuàng)建和調(diào)試的基本方法、ucos操作系統(tǒng)的任務(wù)調(diào)度原理。 四、實(shí)驗(yàn)設(shè)備及工具硬件:STM32開發(fā)平臺。 軟件:STM32官方庫;PC機(jī)操作系統(tǒng)Windows 98、Windows 2000或Windows XP;KEIL MDK集成開發(fā)環(huán)境;串口轉(zhuǎn)usb驅(qū)動。 五、實(shí)驗(yàn)步驟1、建立基于操作系統(tǒng)μC/OS-Ⅱ的工程Proj3_ucos1,并配置好工程各項(xiàng)屬性。 2、創(chuàng)建用戶任務(wù)文件task.c和task.h兩個(gè)文件,詳細(xì)代碼如下。
代碼中,在task1.c中定義兩個(gè)全局變量NUM_COUNT1和NUM_COUNT2,兩個(gè)變量在my_task函數(shù)里用于記錄該任務(wù)循環(huán)的總次數(shù),區(qū)別在與NUM_COUNT1直接操作,而NUM_COUNT2則通過信號量的方法進(jìn)行操作。
3、在main函數(shù)中初始化操作系統(tǒng)后創(chuàng)建一個(gè)信號量NUM_COUNT,然后用OSTaskCreate創(chuàng)建兩個(gè)任務(wù),優(yōu)先級分別是8和9,兩個(gè)任務(wù)的入口地址都是task1.c文件中的my_task函數(shù)。
4、編譯通過后調(diào)試,在debug界面中,將NUM_COUNT1,NUM_COUNT2兩個(gè)全局變量加入到變量觀察窗口watch1中,然后在task.c的my_task函數(shù)里面設(shè)置斷點(diǎn),運(yùn)行并觀察兩個(gè)變量的變化,理解信號量的使用。
5、關(guān)于操作系統(tǒng)郵箱的應(yīng)用由例子工程Proj3_ucos2實(shí)現(xiàn),請自行理解代碼。
實(shí)驗(yàn)四、ucos操作系統(tǒng)的文件系統(tǒng)實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康?/font>1、了解文件系統(tǒng)FATFS的基本實(shí)現(xiàn)原理; 2、掌握FATFS的移植步驟; 3、掌握基于ucos中FATFS的應(yīng)用; 4、掌握STM32對SD卡的讀寫操作; 5、規(guī)范編程格式。 二、實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)實(shí)現(xiàn)將FAT文件系統(tǒng)移植到ucos中,并基于ucos的文件系統(tǒng)編寫用戶任務(wù)進(jìn)行測試,通過對文件系統(tǒng)的移植實(shí)驗(yàn)深入掌握對嵌入式相關(guān)驅(qū)動移植的基本步驟,建立正確的嵌入式操作系統(tǒng)驅(qū)動移植理念,并且熟悉掌握ucos操作系統(tǒng)下的文件系統(tǒng)的基本應(yīng)用,了解其優(yōu)缺點(diǎn)。 三、預(yù)備知識基本單片機(jī)硬件知識、單片機(jī)軟件編程語言、程序創(chuàng)建和調(diào)試的基本方法、ucos操作系統(tǒng)的任務(wù)調(diào)度原理、STM32單片機(jī)中的SD卡驅(qū)動、文件系統(tǒng)的操作函數(shù)、FAT文件系統(tǒng)的基礎(chǔ)知識。 四、實(shí)驗(yàn)設(shè)備及工具硬件:STM32開發(fā)平臺。 軟件: PC機(jī)操作系統(tǒng)Windows 98、Windows 2000或Windows XP;KEIL MDK集成開發(fā)環(huán)境;串口轉(zhuǎn)usb驅(qū)動;STM32官方庫;FATFS的官方庫;STM32的uart驅(qū)動和SD卡驅(qū)動源碼。 五、實(shí)驗(yàn)步驟1、拷貝實(shí)驗(yàn)三的所有代碼到新的目錄地下,刪除USER和OBJ文件夾里工程相關(guān)的文件,重新建立實(shí)驗(yàn)四的工程并命名為Proj4_FATFS,配置好工程各項(xiàng)屬性。 
2、在USER文件夾里面創(chuàng)建文件夾myapp,將串口驅(qū)動uart和SD卡驅(qū)動sdio_sdcard的源代碼拷貝到該文件夾里面,并添加到工程中USER。 3、拷貝FAT文件系統(tǒng)源碼到myapp文件夾。在keil的工程中增加一個(gè)文件夾FATFS并添加diskio.c、ff.c、cc936.c三個(gè)文件到里面,如右圖。
4、嘗試編譯字符表文件cc936.c可能發(fā)現(xiàn)出錯(cuò):#error directive: This file is not needed in current configuration. 這是因?yàn)樵趂f.h中_CODE_PAGE這個(gè)宏的定義值不是936和長文件名宏定義_USE_LFN的值不是1導(dǎo)致的。修改成對應(yīng)的值后該文件的編譯即可通過(如果用其他字符表文件同理)。 5、移植FAT文件系統(tǒng)需要做的事情。 1)FATFS是一個(gè)通用的文件系統(tǒng)模塊,用于在小型嵌入式系統(tǒng)中實(shí)現(xiàn)FAT文件系統(tǒng)。 FatFs 的編寫遵循ANSI C,因此不依賴于硬件平臺。它可以嵌入到便宜的微控制器中,如 8051,PIC,AVR,SH,Z80,H8,ARM等等,不需要做任何修改。FATFS源代碼的獲取,可以到官網(wǎng)下載elm-chan點(diǎn)org/fsw/ff/00index_e.html; 解壓文件會得到兩個(gè)文件夾,一個(gè)是doc文件夾,保存FATFS的一些使用文檔和說明。另一個(gè)是src文件夾,保存代碼源文件。FAT文件系統(tǒng)源碼和sd卡讀寫的底層驅(qū)動。 2)移植FAT文件系統(tǒng)只需根據(jù)硬件中可能接入的物理存儲模塊對文件系統(tǒng)的底層IO驅(qū)動(diskio.c)進(jìn)行修改,具體需要修改的函數(shù)有: DSTATUS disk_initialize (BYTE);//存儲介質(zhì)的初始化 DSTATUS disk_status (BYTE);//讀取存儲介質(zhì)的狀態(tài) DRESULT disk_read (BYTE, BYTE*, DWORD, BYTE);//讀取數(shù)據(jù) DRESULT disk_write (BYTE, const BYTE*, DWORD, BYTE);//寫入數(shù)據(jù) DRESULT disk_ioctl (BYTE, BYTE, void*);//讀取存儲介質(zhì)文件系統(tǒng)相關(guān)信息 DWORD get_fattime (void);//返回文件系統(tǒng)的時(shí)間 3)diskio.c文件中添加頭文件sdio_sdcard.h、ff.h,增加SD卡的驅(qū)動號0如下: 4)diskio.c五個(gè)函數(shù)具體代碼:
5)對于最底層(物理層)對SD卡的具體初始化和讀寫操作,STM32有SPI和SDIO兩種方式實(shí)現(xiàn),實(shí)際應(yīng)用中根據(jù)硬件電路條件選擇。在沒有SPI外設(shè)的單片機(jī)中也可以通過IO口模擬SPI協(xié)議。(具體實(shí)現(xiàn)代碼略,詳見工程文件中的 sdio_sdcard.c 和 sdio_sdcard.h ) 6)修改task.c進(jìn)行文件系統(tǒng)的測試應(yīng)用。在測試FAT文件系統(tǒng)之前,首先應(yīng)該確保對底層SD卡的讀寫驅(qū)動正確。所以第一步通過直接調(diào)用SD卡驅(qū)動函數(shù)實(shí)現(xiàn)對SD卡進(jìn)行初始化檢測和基本的讀寫操作,具體代碼如下: 7)如果上一步能初始化并檢測出SD卡的大小,讀出前512個(gè)字節(jié)的數(shù)據(jù),則說明SD卡和驅(qū)動函數(shù)都正常。下一步設(shè)計(jì)一個(gè)FAT測試函數(shù):實(shí)現(xiàn)檢測TEST.txt文件是否存在,存在則讀取文件中的前100個(gè)字節(jié)內(nèi)容并串口輸出;然后打開TEST2.txt文件(不存在則創(chuàng)建)寫入讀取到的內(nèi)容(沒有內(nèi)容則寫入“is no file TEST.txt!”);打開TEST2.txt讀取文件中的前100個(gè)字節(jié)內(nèi)容并串口輸出。具體代碼如下。 8)至此,我們已經(jīng)將FATFS移植成功了,下面我們設(shè)計(jì)一個(gè)基于ucos的文件系統(tǒng)應(yīng)用實(shí)驗(yàn),實(shí)現(xiàn)在用戶中檢測是否有SD卡插入,如果有則任務(wù)沒循環(huán)一次在SD卡中的文件mytask.txt的末尾寫入一句“這是本任務(wù)的第xx次循環(huán)”,然后在主函數(shù)中創(chuàng)建兩個(gè)以上的該任務(wù)的線程(這里需要注意實(shí)驗(yàn)三的資源沖突問題!)。 9)具體代碼,詳見實(shí)例工程! *擴(kuò)展知識1:在本工程中的SD底層驅(qū)動中,因?yàn)橛?2位存儲SD卡的容量大小,所以最大只能識別到4GB,如果采用大于4G的卡進(jìn)行測試則讀出的容量是錯(cuò)誤的。 *擴(kuò)展知識2:對于FAT32的MBR區(qū)不一定是在0扇區(qū)中。 *擴(kuò)展知識3:配置ff.h(可能是ffconf.h)文件中 _USE_STRFUNC 宏定義為1,可以使用f_putc、f_puts、f_printf、f_gets、f_eof、f_error 等函數(shù)
實(shí)驗(yàn)五、基于ucos操作系統(tǒng)的網(wǎng)絡(luò)模塊一、實(shí)驗(yàn)?zāi)康?/font>1、了解W5500網(wǎng)絡(luò)模塊的基本實(shí)現(xiàn)原理; 2、掌握ucos下網(wǎng)絡(luò)底層庫的移植步驟; 3、掌握基于ucos的網(wǎng)絡(luò)編程TCP、UDP思路; 4、了解嵌入式軟件設(shè)計(jì)的分層思路; 二、實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)通過STM32的SPI協(xié)議讀寫W5500網(wǎng)絡(luò)模塊,移植網(wǎng)絡(luò)協(xié)議驅(qū)動到ucos嵌入式操作系統(tǒng),并通過編寫ucos操作系統(tǒng)的應(yīng)用任務(wù)實(shí)現(xiàn)實(shí)驗(yàn)板和上位機(jī)的網(wǎng)絡(luò)通信。了解基于網(wǎng)絡(luò)通信的嵌入式軟件設(shè)計(jì)的思路。 三、預(yù)備知識本實(shí)驗(yàn)要求學(xué)生具備基本的C語言讀寫能力、基本單片機(jī)軟硬件知識、了解SPI協(xié)議、了解基礎(chǔ)的網(wǎng)絡(luò)協(xié)議應(yīng)用、ucos操作系統(tǒng)的用戶任務(wù)設(shè)計(jì)能力 四、實(shí)驗(yàn)設(shè)備及工具硬件:STM32開發(fā)平臺、PC機(jī) 軟件: keilMDK編程環(huán)境、串口轉(zhuǎn)usb驅(qū)動、STM32官方庫、移植好的ucos源碼、基于STM32的SPI驅(qū)動庫、基于STM32的uart驅(qū)動庫、W5500網(wǎng)絡(luò)模塊驅(qū)動庫、 五、實(shí)驗(yàn)步驟1、了解網(wǎng)絡(luò)編程中socket、UDP的基本實(shí)現(xiàn)原理。
2、了解W5500網(wǎng)絡(luò)模塊的基本功能和官方驅(qū)動庫提供的代碼架構(gòu)。 
W5500 是一款全硬件 TCP/IP 嵌入式以太網(wǎng)控制器,為嵌入式系統(tǒng)提供了更加簡易的互聯(lián)網(wǎng)連接方案。W5500 集成了 TCP/IP 協(xié)議棧,10/100M 以太網(wǎng)數(shù)據(jù)鏈路層(MAC) 及物理層(PHY),使得用戶使用單芯片就能夠在他們的應(yīng)用中拓展網(wǎng)絡(luò)連接。原廠公司位于韓國,中文官網(wǎng):www點(diǎn)iwiznet點(diǎn)cnW5500的驅(qū)動可在官網(wǎng)中找到下載,下載解壓后的目錄Ethernet為W5500的官方驅(qū)動庫。其中W5500.c和W5500.h提供W5500的硬件接口函數(shù),實(shí)現(xiàn)對W5500寄存器的讀寫驅(qū)動;socket.c和socket.h提供網(wǎng)絡(luò)協(xié)議socket的API實(shí)現(xiàn)和用戶接口函數(shù);wizchip_conf.c和wizchip.h提供對芯片應(yīng)用驅(qū)動和配置接口,例如芯片的復(fù)位、IP地址的初始化,注冊用戶的SIP驅(qū)動函數(shù)等。整體架構(gòu)如右圖: 3、基于STM32的移植。 由上圖我們知道對于官方驅(qū)動庫,我們需要提供STM32的SPI協(xié)議驅(qū)動接口。具體需要我們手動實(shí)現(xiàn)的函數(shù)是: wizchip_cris_enter :進(jìn)入臨界區(qū)的函數(shù),可以不管 wizchip_cris_exit :退出臨界區(qū)的函數(shù),也可以不管 wizchip_cs_select :輸出有效片選信號的函數(shù),控制CS輸出低電平的函數(shù),必須實(shí)現(xiàn) wizchip_cs_deselect :控制CS輸出高電平的函數(shù),必須實(shí)現(xiàn) wizchip_bus_readbyte :SPI總線讀取一字節(jié)數(shù)據(jù)函數(shù),必須實(shí)現(xiàn) wizchip_bus_writebyte :SPI總線寫一字節(jié)數(shù)據(jù)函數(shù),必須實(shí)現(xiàn) 正常情況下我們需要找到驅(qū)動庫中對應(yīng)的函數(shù)原型進(jìn)行修改,但是因?yàn)楣俜綆熘刑峁┝艘粋(gè)用戶接口,可以將我們已有對應(yīng)的SPI函數(shù)入口注冊并替換掉上述函數(shù),所以我們可以獨(dú)立編寫文件SPI.c和SPI.h,然后初始化時(shí)調(diào)用“注冊函數(shù)”(注冊函數(shù)在wizchip)。 工程中我們創(chuàng)建文件confForW5500.c和confFroW5500.h實(shí)現(xiàn)對W5500的配置和各項(xiàng)初始化,代碼詳見工程文件。 4、用戶測試任務(wù)。 根據(jù)網(wǎng)絡(luò)編程基礎(chǔ)知識,我們編寫一個(gè)回環(huán)測試任務(wù),對網(wǎng)絡(luò)模塊的TCP/IP功能進(jìn)行基礎(chǔ)測試。具體分為實(shí)現(xiàn)socket功能和UDP兩個(gè)功能,流程圖如下:
根據(jù)上述流程圖,我們創(chuàng)建文件loopback.c和loopback.h實(shí)現(xiàn)對應(yīng)的各項(xiàng)功能函數(shù)。然后基于ucos操作系統(tǒng)下建立用戶任務(wù)my_task() 進(jìn)行各項(xiàng)功能的順序調(diào)用,主函數(shù)中啟動操作系統(tǒng)并創(chuàng)建該任務(wù)。 5、上位機(jī)連接測試。 將工程編譯調(diào)試通過并燒寫到實(shí)驗(yàn)板,用網(wǎng)線連接PC機(jī)和W5500網(wǎng)絡(luò)模塊,實(shí)驗(yàn)板上電啟動,根據(jù)我們編寫的用戶任務(wù)STM32將會啟動一個(gè)SOCKET服務(wù)端并綁定實(shí)驗(yàn)板的IP和程序中配置的端口。 PC上機(jī)設(shè)置各項(xiàng)網(wǎng)絡(luò)參數(shù),讓PC機(jī)和實(shí)驗(yàn)板處于同一網(wǎng)段(局域網(wǎng)),然后打開命令提示符窗口CMD,輸入ping命令:ping 192.168.xxx.xxx (實(shí)驗(yàn)板IP),觀察是否能夠收到實(shí)驗(yàn)板反饋的數(shù)據(jù)信息。如下圖: PC機(jī)打開調(diào)試軟件NetAssist.exe,選擇TCP Client,服務(wù)器IP地址設(shè)置成實(shí)驗(yàn)板IP,服務(wù)端口設(shè)置成實(shí)驗(yàn)板中打開的socket端口,點(diǎn)擊連接看能否成功連接實(shí)驗(yàn)板socket服務(wù),連接成功后在軟件的發(fā)送數(shù)據(jù)區(qū)隨便輸入發(fā)送內(nèi)容,點(diǎn)擊發(fā)送,查看接收到的反饋信息,如下圖 6、自行設(shè)計(jì)編寫應(yīng)用任務(wù),實(shí)現(xiàn)實(shí)驗(yàn)板網(wǎng)絡(luò)方面新的需求。
全部資料51hei下載地址:
STM32中GPIO的8種工作模式.pdf
(916.55 KB, 下載次數(shù): 6)
2019-1-28 08:55 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
UCOS-II_API_參考手冊.doc
(516 KB, 下載次數(shù): 5)
2019-1-28 08:55 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
基于STM32F103嵌入式實(shí)驗(yàn)指導(dǎo)書.docx
(392.74 KB, 下載次數(shù): 8)
2019-1-28 08:54 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|