第一篇:嵌入式系統(tǒng)實驗報告三(小編推薦)
實驗報告
嵌入式Linux應(yīng)用開發(fā)
1010431065 馮春禮
2010級計算機軟件(嵌入
式系統(tǒng))1班
江東
計算機科學與技術(shù)系 課程:學號:姓名:班級:教師:
一、實驗?zāi)康?/p>
1.掌握Windows環(huán)境下ADS編輯、編譯、調(diào)試的方法 2.掌握GPIO相關(guān)寄存器的功能 3.掌握GPIO操作的過程
二、實驗內(nèi)容
1.在試驗箱的CPU板上點亮LED燈LED1、LED2,并輪流閃爍
三、源程序清單或?qū)嶒灢襟E 1.關(guān)閉相應(yīng)外設(shè)中斷選擇開關(guān) 2.連接串口線并配置波特率 3.編寫程序并編譯運行
四、實驗結(jié)果
在試驗箱的CPU板上點亮LED燈LED1、LED2,并輪流閃爍
五、實驗小結(jié)與注意事項
1.掌握windows環(huán)境下ADS軟件的使用方法 2.可以熟悉GPIO相關(guān)寄存器的作用 3.綜合控制各LED交叉閃爍
4.本次實驗掌握了ads的使用,學會了第一個arm程序的開發(fā),了解到了linux GPIO的相關(guān)知識,動手完成了LED的點亮,實驗中雖然有很多不足,但是在老師和同學的幫助下還是完成了實驗,感到非常開心。
5.GP*CON、GP*DAT、GP*UP寄存器的作用和使用
第二篇:嵌入式系統(tǒng)實驗報告
嵌入式系統(tǒng)實驗報告
學
號:
姓
名:
班
級:13電子信息工程
指導老師:
蘇州大學 電子信息學院
2016年12月
實驗一:一個燈的閃爍
1、實驗要求
實現(xiàn)PF6-10端口所連接的任意一個LED燈點亮
2、電路原理圖
圖1 LED燈硬件連接圖
3、軟件分析
RCC_Configuration();/* 配置系統(tǒng)時鐘 */
GPIO_Configuration();
/* 配置GPIO IO口初始化 */
for(;;)
{
GPIOF->ODR = 0xfcff;
/* PF8=0--> 點亮D3 */
Delay(1000000);
GPIOF->ODR = 0xffff;
/* PF8=1--> 熄滅D3 */
Delay(1000000);
4、實驗現(xiàn)象
通過對GPIOF8的操作,可以使LED3閃爍
5、實驗總結(jié)
這是第一次使用STM32開發(fā)板,主要內(nèi)容是對IO端口進行配置,點亮與IO端口相連接的LED燈,閃爍周期為2S。通過本實驗對STM32開發(fā)板的硬件原理有了初步了解。
實驗二:流水燈
1、實驗要求
實現(xiàn)PF6-10端口所連接的5個LED燈順次亮滅
2、電路原理圖
圖1 流水燈硬件連接圖
3、軟件分析
int main(void){
RCC_Configuration();/* 配置系統(tǒng)時鐘 */
GPIO_Configuration();/* 配置GPIO IO口初始化 */
for(;;)
{
GPIOF->ODR = 0xffbf;
/* PF6=0--> 點亮LED1 */ Delay(5000000);GPIOF->ODR = 0xff7f;
}
/* PF7=0--> 點亮LED2 */ Delay(5000000);
GPIOF->ODR = 0xfeff;
/* PF8=0--> 點亮LED3 */ Delay(5000000);
GPIOF->ODR = 0xfdff;
/* PF9=0--> 點亮LED4 */ Delay(5000000);
GPIOF->ODR = 0xfbff;
/* PF10=0--> 點亮LED5 */ }
4、實驗現(xiàn)象
LED1~LED5依次點亮,亮滅的時間間隔都為1S。
5、實驗總結(jié)
本次實驗對STM32開發(fā)板的GPIO端口進行進一步學習,通過程序可以實現(xiàn)流水燈的閃爍。
實驗三:單級外部中斷
1、實驗要求
按下某個按鍵,觸發(fā)中斷,中斷服務(wù)程序改變LED燈狀態(tài)
2、電路原理圖
圖3 SW1硬件原理圖
3、軟件分析
int main()
{
RCC_Configuration();
GPIO_Configuration();
GPIO_Write(GPIOF,0xffff);Delay(5000);
while(1)
{
}
/* 配置系統(tǒng)時鐘 */
/* IO口初始化 */
/* 全滅 */
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8)==0)/* 如果SW1 PA8=0 */ {
GPIO_SetBits(GPIOF, GPIO_Pin_6);
/* LED1點亮 */
Delay(0x1FFFFF);
GPIO_ResetBits(GPIOF, GPIO_Pin_6);
/* LED1 熄滅 */ Delay(0x1FFFFF);} }
4、實驗現(xiàn)象
原來5個LED燈都處于熄滅狀態(tài),按下SW1,觸發(fā)中斷程序,LED1點亮。
5、實驗總結(jié)
通過本次實驗,可以對某一狀態(tài)通過外部中斷,改變其當前狀態(tài)。
實驗四:多中斷嵌套
1、實驗要求
按下某個按鍵,觸發(fā)中斷,中斷服務(wù)程序改變LED燈狀態(tài)
2、電路原理圖
圖4 SW1,SW2,SW3硬件原理圖
3、軟件分析
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;
//設(shè)定中斷源為PA0 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//中斷占優(yōu)先級為0 NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQChannel;
//設(shè)定中斷源為PD3 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//中斷占優(yōu)先級為1 NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel;//設(shè)定中斷源為PA8 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;//中斷占優(yōu)先級為2 void EXTI0_IRQHandler(void){ int i=0;if(EXTI_GetITStatus(EXTI_Line0)!= RESET){ for(i=0;i<10;i++){
GPIO_Write(GPIOF,0xffff);
GPIO_SetBits(GPIOF, GPIO_Pin_6);/* LED1 點亮 */ Delay(0x5fFFFF);GPIO_ResetBits(GPIOF, GPIO_Pin_6);/* LED1 熄滅 */
Delay(0x5fFFFF);EXTI_ClearITPendingBit(EXTI_Line0);} } }
void EXTI3_IRQHandler(void)if(EXTI_GetITStatus(EXTI_Line3)!= RESET){ {
int i=0;for(i=0;i<10;i++){
GPIO_Write(GPIOF,0xffff);
GPIO_SetBits(GPIOF, GPIO_Pin_7);/* LED2 點亮 */ Delay(0x5fFFFF);GPIO_ResetBits(GPIOF, GPIO_Pin_7);/* LED2 熄滅 */ Delay(0x5fFFFF);EXTI_ClearITPendingBit(EXTI_Line3);} } } void EXTI9_5_IRQHandler(void){ int i=0;
if(EXTI_GetITStatus(EXTI_Line8)!= RESET){
for(i=0;i<10;i++){
GPIO_Write(GPIOF,0xffff);
GPIO_SetBits(GPIOF, GPIO_Pin_8);/* LED3 點亮 */
Delay(0x5fFFFF);
GPIO_ResetBits(GPIOF, GPIO_Pin_8);/* LED3 熄滅 */
Delay(0x5fFFFF);
EXTI_ClearITPendingBit(EXTI_Line8);} } }
4、實驗現(xiàn)象
中斷優(yōu)先級從高到低依次為:SW3,SW2,SW1 原來5個LED燈都處于熄滅狀態(tài),按下SW1,LED3應(yīng)該閃爍10次,當其閃爍5次后按下SW2,LED2也應(yīng)該閃爍10次,當其閃爍4次后按下SW3,LED1也應(yīng)該閃爍10次,則當LED1閃爍完10次后,LED2繼續(xù)閃爍6次,之后LED1繼續(xù)閃爍5次。
5、實驗總結(jié)
通過本次實驗,可以對LED狀態(tài)實行中斷嵌套,由以上實驗現(xiàn)象,得出以下結(jié)論:高中斷優(yōu)先級可以打斷低優(yōu)先級,中斷系統(tǒng)正在執(zhí)行一個中斷服務(wù)時,有另一個優(yōu)先級更高的中斷提出中斷請求,這時會暫時終止當前正在執(zhí)行的級別較低的中斷源的服務(wù)程序,去處理級別更高的中斷源,待處理完畢,再返回到被中斷了的中斷服務(wù)程序繼續(xù)執(zhí)行,反之,低中斷優(yōu)先級不可以打斷高優(yōu)先級。
實驗五:TIM2的基本應(yīng)用
1、實驗要求
TIM2定時器將LED燈定時點亮和熄滅一定的時間
2、電路原理圖
3、軟件分析
TIM_Cmd(TIM2, ENABLE);
/* TIM2 enable counter */ TIM_TimeBaseStructure.TIM_Period = 1999;
TIM_TimeBaseStructure.TIM_Prescaler = 35999;
//定時時間為1s void TIM2_IRQHandler(void){ TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
GPIO_WriteBit(GPIOF, GPIO_Pin_6,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOF, GPIO_Pin_6)));}
4、實驗現(xiàn)象
LED1燈按照1S的定時時間不斷閃爍
5、實驗總結(jié)
通過本次實驗,可以實現(xiàn)對LED燈進行定時控制其閃爍,而不需要延時函數(shù)控制了,定時時間較為精準。實驗六:TIM2,TIM3,TIM4多定時器的應(yīng)用
1、實驗要求
利用TIM2,TIM3,TIM4定時器使LED燈以不同的頻率閃爍
2、電路原理圖
3、軟件分析
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;此處比上一個實驗增加了2個定時器,同時又增加了一個優(yōu)先級
4、實驗現(xiàn)象
中斷優(yōu)先級從高到低依次為:TIM2,TIM3,TIM4 首先LED1以1S的定時時間閃爍5次,之后LED2以2S的定時時間閃爍5次,最后LED3以3S的定時時間閃爍5次
5、實驗總結(jié)
利用定時器可以同時使LED燈按照不同的頻率閃爍,但是為了現(xiàn)象明顯,可以加一個優(yōu) 先級,分別觀察現(xiàn)象。
實驗七:串口USART1讀取CPU的ID號
1、實驗要求
通過USART1讀取 CPU 的 96 bit ID
2、電路原理圖
圖 開發(fā)板USART原理圖
3、軟件分析
void Get_ChipID(void)/* 獲取芯片ID */ { ChipUniqueID[0] = *(u32 *)(0X1FFFF7F0);/* 高字節(jié) */ ChipUniqueID[1] = *(u32 *)(0X1FFFF7EC);
ChipUniqueID[2] = *(u32 *)(0X1FFFF7E8);/* 低字節(jié) */ } void USART_Configuration(void){
USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure);
USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
USART_ClearFlag(USART1, USART_FLAG_TC);
USART_Cmd(USART1, ENABLE);
/* Enable USART1 */ }
4、實驗現(xiàn)象
PA9連接的是USART1 Tx,PA10連接的是USART1 Rx,再通過串口調(diào)試助手就可 以在電腦上面顯示出CPU的ID以及flash容量大小。
5、實驗總結(jié)
本次實驗實現(xiàn)了串口和PC機的傳輸,可以通過USART1將CPU的ID在電腦上顯示出來。
實驗八:異步通信USART2的重映射
1、實驗要求
實現(xiàn)異步通信USART2的重映射,將數(shù)據(jù)傳送到PC機上
2、電路原理圖
圖 開發(fā)板USART原理圖
3、軟件分析
void GPIO_Configuration()
/* IO口初始化 */ {
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
/* USART2 Tx--> PD05 */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;/* PD05--> JP7 WR */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
/* USART2 Rx--> PD06 */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOD, &GPIO_InitStructure);GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);} 該程序?qū)SART2重映射到PD05,PD06引腳
4、實驗現(xiàn)象
PD05連接的是USART2 Tx,PD06連接的是USART2 Rx,通過串口調(diào)試助手就可以在電腦上面顯示Program Running!
5、實驗總結(jié)
通過本次實驗,可以實現(xiàn)對異步通信USART2的重映射,再通過串口調(diào)試助手在電腦上顯示出來。
第三篇:嵌入式系統(tǒng)實驗報告
嵌入式系統(tǒng)設(shè)計實驗報告
班 級: 學 號: 姓 名: 成 績: 指導教師:
1.實驗一
1.1 實驗名稱
博創(chuàng)UP-3000實驗臺基本結(jié)構(gòu)及使用方法
1.2 實驗?zāi)康?/p>
1.學習嵌入式系統(tǒng)開發(fā)流程。
2.熟悉UP-net3000實驗平臺的核心硬件電路和外設(shè)。
3.增加對各個外設(shè)的了解,為今后各個接口實驗打下基礎(chǔ)。
1.3 實驗環(huán)境
博創(chuàng)UP-NETARM3000 嵌入式開發(fā)平臺
1.4 實驗內(nèi)容及要求
(1)嵌入式系統(tǒng)開發(fā)流程概述
(2)熟悉UP-net3000實驗平臺的核心硬件電路和外設(shè)(3)ARM JTAG的安裝與使用
(4)通過操作系統(tǒng)自帶的通訊軟件超級終端,檢驗各個外設(shè)的工作狀態(tài)(5)通過本次課程對各個外設(shè)的了解,為今后各個接口實驗打下基礎(chǔ)
1.5 實驗設(shè)計與實驗步驟
1.硬件安裝 2.軟件安裝
(1)超級終端:
運行Windows 系統(tǒng)下的超級終端(HyperTerminal)應(yīng)用程序,新建一個通信終端;在接下來的對話框中選擇 ARM開發(fā)平臺實際連接的PC機串口;完成新建超級終端的設(shè)置以后,可以選擇超級終端文件菜單中的保存,將當前設(shè)置保存為一個特定超級終端到桌面上,以備后用。
(2)JTAG 驅(qū)動程序的安裝:
執(zhí)行armJtag目錄下armJtagSetup.exe程序,選擇安裝目錄,安裝 JTAG 軟件。
1.6 實驗過程與分析
(1)了解嵌入式系統(tǒng)開發(fā)流程(2)對硬件的安裝(3)對軟件的安裝
1.7 實驗結(jié)果總結(jié)
通過本次實驗對嵌入式系統(tǒng)開發(fā)流程進行了了解,并且對硬件環(huán)境和軟件環(huán)境進行了安裝配置,通過本次實驗對以后的接口實驗打了基礎(chǔ)。
1.8 心得體會
通過本次實驗對嵌入式實驗有了初步的了解,對基本開發(fā)流程也有了初步的了解。
2.實驗二
2.1 實驗名稱
ADS1.2軟件開發(fā)環(huán)境使用方法
2.2 實驗?zāi)康?/p>
熟悉ADS1.2開發(fā)環(huán)境,學會 ARM仿真器的使用。使用 ADS 編譯、下載、調(diào)試并跟蹤一段已有的程序,了解嵌入式開發(fā)的基本思想和過程。
2.3 實驗環(huán)境
(1)ADS1.2開發(fā)環(huán)境
(2)博創(chuàng)UP-NETARM3000 嵌入式開發(fā)平臺(3)PC(4)串口線
2.4 實驗內(nèi)容及要求
本次實驗使用ADS 集成開發(fā)環(huán)境,新建一個簡單的工程文件,并編譯這個工程文件。學習ARM仿真器的使用和開發(fā)環(huán)境的設(shè)置。下載已經(jīng)編譯好的文件到嵌入式控制器中運行。學會在程序中設(shè)置斷點,觀察系統(tǒng)內(nèi)存和變量,為調(diào)試應(yīng)用程序打下基礎(chǔ)。
2.5 實驗設(shè)計與實驗步驟
(1)運行ADS1.2開發(fā)環(huán)境(2)新建工程文件(3)編譯工程文件
(4)下載編譯好的文件到嵌入式控制器中運行
2.6 實驗過程與分析
(1)實現(xiàn)Hello World!
最終在輸出了Hello World(2)編程實現(xiàn)ARM 和計算機之間的串行通訊
實現(xiàn)了串口通信,用ARM監(jiān)視串口,接收到的字符串由ARM通過串口發(fā)送給超級終端,最終在超級終端上顯示了按下的鍵。學習了串行通訊原理,了解串行通訊控制器,閱讀ARM 芯片文檔,掌握ARM 的UART相關(guān)寄存器的功能,熟悉ARM 系統(tǒng)硬件的UART 相關(guān)接口。
2.7 實驗結(jié)果總結(jié)
對ADS 1.2開發(fā)環(huán)境使用和AXD Debugger使用方法有了初步的了解,基本成功運行了編譯好的工程文件。
2.8 心得體會
學習了ADS1.2開發(fā)環(huán)境的使用方法和調(diào)試方法。使用 ADS 編譯、下載、調(diào)試并跟蹤一段已有的程序,了解了嵌入式開發(fā)的基本思想和過程。
3.實驗三
3.1 實驗名稱
鍵盤控制方法及LED驅(qū)動設(shè)計
3.2 實驗?zāi)康?/p>
熟悉ZLG7289芯片的內(nèi)部結(jié)構(gòu),掌握用ZLG7289驅(qū)動鍵盤和LED的方法,掌握ARM匯編語言和C語言的編程方法編寫出一段程序,要求能在LED上顯示出小鍵盤上按下的4位數(shù)字。
3.3 實驗環(huán)境
(1)ADS1.2開發(fā)環(huán)境
(2)博創(chuàng)UP-NETARM3000 嵌入式開發(fā)平臺(3)PC(4)串口線
3.4 實驗內(nèi)容及要求
通過ZLG7289芯片驅(qū)動17鍵的鍵盤和8個共陰極LED,將按鍵值在LED 上顯示出來。
3.5 實驗設(shè)計與實驗步驟
(1)新建工程,將“Exp3鍵盤及LED 驅(qū)動實驗”中的文件添加到工程。(2)定義ZLG7289 寄存器(3)編寫ZLG7289 驅(qū)動函數(shù)(4)定義鍵盤映射表(5)定義鍵值讀取函數(shù)
(6)編寫主函數(shù)
3.6 實驗過程與分析
(1)定義ZLG7289寄存器 #define ZLG7289_CS #define ZLG7289_KEY #define ZLG7289_ENABLE()do{ZLG7289SIOBand=rSBRDR;ZLG7289SIOCtrl=rSIOCON;rSIOCON=0x31;rSBRDR=0xff;rPDATB&=(~ZLG7289_CS);}while(0)#define ZLG7289_DISABLE()do{rPDATB|=ZLG7289_CS;rSBRDR=ZLG7289SIOBand;rSIOCON=ZLG7289SIOCtrl;}while(0)(2)主函數(shù)中需要在開始初始化zlg7289。編寫驅(qū)動和鍵值映射之后,在一個循環(huán)里面從鍵盤中讀取按鍵的號碼,根據(jù)鍵值映射讀出按鍵的值。然后在主函數(shù)中,將讀出的按鍵值在數(shù)碼管上顯示出來。
(3)Main函數(shù)的主要功能部分,GetKey()函數(shù)得到按鍵值是調(diào)用zlg7289獲取鍵盤事件和核心。
3.7 實驗結(jié)果總結(jié)
通過實驗最終LED燈上能顯示數(shù)字,即實現(xiàn)了通過鍵值控制LED燈
3.8 心得體會
通過本次實驗對ZLG7289芯片的內(nèi)部結(jié)構(gòu)有了更進一步的了解,對ZLG7289驅(qū)動鍵盤和LED的方法也更進一步的進行了學習。
4.實驗四
4.1 實驗名稱
電機轉(zhuǎn)動控制及中斷實驗
4.2 實驗?zāi)康?/p>
(1)熟悉ARM本身自帶的六路即三對PWM,掌握相應(yīng)寄存器的配置
(2)編程實現(xiàn) ARM系統(tǒng)的PWM 輸出和I/O 輸出,前者用于控制直流電機,后者用于控制步進電機。
(3)了解直流電機和步進電機的工作原理,學會用軟件的方法實現(xiàn)步進電機的脈沖分配,即用軟件的方法代替硬件的脈沖分配器。
(4)掌握帶有PWM 和I/O 的CPU 編程實現(xiàn)其相應(yīng)功能的主要方法。
4.3 實驗環(huán)境
(1)ADS1.2開發(fā)環(huán)境
(2)博創(chuàng)UP-NETARM3000 嵌入式開發(fā)平臺(3)PC(4)串口線
4.4 實驗內(nèi)容及要求
學習步進電機和直流電機的工作原理,了解實現(xiàn)兩個電機轉(zhuǎn)動對于系統(tǒng)的軟件和硬件要求。學習ARM知識,掌握PWM 的生成方法,同時也要掌握I/O 的控制方法。
(1)編程實現(xiàn)ARM芯片的一對PWM 輸出用于控制直流電機的轉(zhuǎn)動,通過A/D 旋鈕控制其正反轉(zhuǎn)及轉(zhuǎn)速
(2)編程實現(xiàn)ARM的四路I/O 通道實現(xiàn)環(huán)形脈沖分配用于控制步進電機的轉(zhuǎn)動,通過A/D 旋鈕轉(zhuǎn)角控制步進電機的轉(zhuǎn)角。
(3)通過超級終端來控制直流電機與步進電機的切換。4.5 實驗設(shè)計與實驗步驟
(1)新建工程,將“電機轉(zhuǎn)動控制實驗”中的文件添加到工程(2)編寫直流電機初始化數(shù)(MotorCtrl.c)(3)控制直流電機與步進電機
4.6 實驗過程與分析
(1)通過把從串口中得到控制信息的代碼修改成從zlg7289芯片中讀取小鍵盤信息,從而利用試驗臺的小鍵盤來控制步進電機和直流電機的切換
(2)A/D轉(zhuǎn)換可以把電信號轉(zhuǎn)換成數(shù)字信號來控制電機的轉(zhuǎn)速。for(;;)
{ loop:
//if((rUTRSTAT0 & 0x1))//有輸入,則返回
if(rPDATG&ZLG7289_KEY)//17鍵小鍵盤控制電機
{
*Revdata=RdURXH0();
goto begin;
}
Delay(10);ADData=GetADresult(0);
if(abs(lastADData-ADData)<20)
goto loop;Delay(10);count=-(ADData-lastADData)*3;
//(ADData-lastADData)*270/1024為ad旋鈕轉(zhuǎn)過的角度,360/512為步距角,//由于接了1/8減速器,兩者之商再乘以8為步進電機相應(yīng)轉(zhuǎn)過的角度
if(count>=0)
{//轉(zhuǎn)角大于零
for(j=0;j { for(i=0;i<=7;i++) { SETEXIOBITMASK(stepdata[i], 0xf0); Delay(200); } } } else {//轉(zhuǎn)角小于零 count=-count; for(j=0;j { for(i=7;i>=0;i--) { SETEXIOBITMASK(stepdata[i], 0xf0); Delay(200); } } } lastADData=ADData; } } (3)S3C44B0X 具有6 個16bit定時器,每個定時器可以基于中斷模式或 DMA模式運行。在定時中斷服務(wù)程序中寫需要定時處理的程序,每隔一段時間就會運行一次。 4.7 實驗結(jié)果總結(jié) 利用A/D轉(zhuǎn)換器實現(xiàn)了對直流電機和步進電機的控制,利用實驗設(shè)備上自帶的小鍵盤實現(xiàn)了A/D轉(zhuǎn)換器對兩個電機控制的切換。 4.8 心得體會 通過本次實驗,熟悉了ARM自帶的六路(三對)PWM,并對直流電機和步進電機的工作原理有了進一步的了解。 5.實驗五 5.1 實驗名稱 LCD驅(qū)動及觸摸屏實驗 5.2 實驗?zāi)康?/p> 掌握LCD顯示原理及顯示驅(qū)動的嵌入式系統(tǒng)編程實現(xiàn)方法;學習基于ARM的LCD 顯示驅(qū)動控制方法,通過對ARM 內(nèi)置的LCD 控制器進行編程實現(xiàn)驅(qū)動LCD顯示屏;學習觸摸屏基本原理,理解觸摸屏的輸出標定以及與LCD 顯示器配合的過程,編程對觸摸屏進行控制。 5.3 實驗環(huán)境 (1)ADS1.2開發(fā)環(huán)境(2)博創(chuàng)UP-NETARM3000 嵌入式開發(fā)平臺(3)PC(4)串口線 5.4 實驗內(nèi)容及要求 (1)學習LCD顯示器的基本原理,理解其驅(qū)動控制方法(2)編程對觸摸屏進行控制,實現(xiàn): 1.點擊觸摸屏上兩點后,兩點之間畫出一條直線。2.點擊觸摸屏并在其上移動,顯示移動軌跡 (3)編程實現(xiàn)總線方式驅(qū)動模塊的LCD和ARM內(nèi)置的LCD控制器來驅(qū)動LCD 5.5 實驗設(shè)計與實驗步驟 (1)新建工程 (2)定義有關(guān)常量與宏 #define LCDWIDTH 320 #define LCDHEIGHT 240 U32* pLCDBuffer16=(U32*)0xc000000;// 一級緩存指針 U32 LCDBuffer[LCDHEIGHT][LCDWIDTH];//二級緩存(3)編寫LCD 初始化函數(shù)(4)編寫LCD 刷新函數(shù)(5)編寫主函數(shù) 5.6 實驗過程與分析 (1)通過不斷刷新的方式獲得LCD液晶屏幕的動畫。即刷新函數(shù)將二級緩存LCDBuffer 的數(shù)據(jù)由32 位彩色圖形信息轉(zhuǎn)換成8 位256 色的圖形信息,然后放到pLCDBuffer16指向的一級緩存。 (2)觸摸屏的先得到觸屏輸出的電信號的值,然后轉(zhuǎn)換為實際的屏幕坐標,再根據(jù)動作來決定如何處理緩存信息,刷新LCD。 LCD二級緩存矩陣: for(i=0;i<9;i++){ switch(i){ case 0: jcolor=0x00000000;// 黑色 break;case 1: jcolor=0x000000e0;// 紅色 break;case 2: jcolor=0x0000d0e0;// 橙色 break;case 3: jcolor=0x0000e0e0;// 黃 break;case 4: jcolor=0x0000e000;// 綠色 break;case 5: jcolor=0x00e0e000;// 青色 break;case 6: jcolor=0x00e00000;// 藍色 break;case 7: jcolor=0x00e000e0;// 紫色 break;case 8: jcolor=0x00e0e0e0;// 白色 break;} for(k=0;k<240;k++)for(j=i*32;j 5.7 實驗結(jié)果總結(jié) 本次實驗由于坐標設(shè)定的問題并沒有成功實現(xiàn)觸摸痕跡的顯示,但在測試過程中,在觸摸屏上點擊或移動時會在超級終端上有顯示。 5.8 心得體會 雖然本次實驗不太成功實現(xiàn),但對LCD屏幕和觸摸屏的工作原理有了進一步的了解,更好的掌握了LCD顯示原理及顯示驅(qū)動的嵌入式系統(tǒng)編程實現(xiàn)方法。 6.實驗六 6.1 實驗名稱 ucos-II裁剪實驗 6.2 實驗?zāi)康?掌握μcos-II裁剪的基本原理與嵌入式編程實現(xiàn)方法;學習如何根據(jù)具體情況對μcos-II操作系統(tǒng)進行裁剪,從而得到即滿足需要,又非常緊湊的應(yīng)用軟件系統(tǒng)。 6.3 實驗環(huán)境 (1)ADS1.2開發(fā)環(huán)境 (2)博創(chuàng)UP-NETARM3000 嵌入式開發(fā)平臺(3)PC(4)串口線 6.4 實驗內(nèi)容及要求 (1)通過對μcos-II配置文件(OS_CFG.H)中相關(guān)的配置常量進行設(shè)置,實現(xiàn)對μcos-II的裁剪 (2)給出裁剪的詳細過程與裁剪結(jié)果說明,并生成裁剪后的操作系統(tǒng)文件。 6.5 實驗設(shè)計與實驗步驟 (1)新建工程,將ucosII移植的文件添加到工程中。 (2)編輯os_cfg.h頭文件。 (3)將裁減后的系統(tǒng)所需用到的功能宏定義配置常量置為1,實現(xiàn)系統(tǒng)的裁減。(4)編譯生成新的ucosII系統(tǒng)。 6.6 實驗過程與分析 (1)配置功能常量,將裁剪后的系統(tǒng)需要用到的功能配置常量設(shè)為1(2)裁減信號量數(shù)據(jù)(3)配置數(shù)據(jù)結(jié)構(gòu) OS_MAX_TASKS,若程序中用到了三個任務(wù),則該值的最小值為3 OS_LOWEST_PRIO設(shè)置程序中最低任務(wù)的優(yōu)先級 OS_TASK_IDLE_STK_SIZE設(shè)置UC/OS操作系統(tǒng)中空閑任務(wù)堆棧的容量 OS_TASK_STAT_STK_SIZE設(shè)定統(tǒng)計任務(wù)的任務(wù)堆棧容量 6.7 實驗結(jié)果總結(jié) 通過本次實驗,裁減了系統(tǒng),修改了某些數(shù)據(jù)結(jié)構(gòu)相關(guān)的常量,節(jié)省了內(nèi)存空間 6.8 心得體會 通過本次實驗主要學習到了如何根據(jù)具體情況對μcos-II操作系統(tǒng)進行裁剪,從而得到即滿足需要,又非常緊湊的應(yīng)用軟件系統(tǒng)。 7.實驗七 7.1 實驗名稱 ucos-II移植實驗 7.2 實驗?zāi)康?/p> 了解μC/OS-II 內(nèi)核的主要結(jié)構(gòu),掌握ARM的C語言和匯編語言的編程方法;了解ARM7處理器結(jié)構(gòu);掌握將μC/OS-II 內(nèi)核移植到ARM 7 處理器上的基本原理與嵌入式編程實現(xiàn)方法 7.3 實驗環(huán)境 (1)ADS1.2開發(fā)環(huán)境 (2)博創(chuàng)UP-NETARM3000 嵌入式開發(fā)平臺(3)PC(4)串口線 7.4 實驗內(nèi)容及要求 (1)將μC/OS-II 內(nèi)核移植到ARM7 微處理器S3C44B0上。(2)編寫兩個簡單任務(wù),在超級終端上觀察兩個任務(wù)的切換。 7.5 實驗設(shè)計與實驗步驟 (1)新建工程 (2)該實驗的文件分為兩類,其一是 STARTUP目錄下的系統(tǒng)初始化、配置等文件,其二是uCOS-II 的全部源碼,arch 目錄下的3 個文件是和處理器架構(gòu)相關(guān)的3.定義驅(qū)動函數(shù)(tchscr.c)(3)設(shè)置os_cpu.h 中與處理器和編譯器相關(guān)的代碼(4)用C 語言編寫6 個操作系統(tǒng)相關(guān)的函數(shù)(5)用匯編語言編寫4 個與處理器相關(guān)的函數(shù) (6)編寫一個簡單的多任務(wù)程序來測試一下移植是否成功(7)編譯并下載移植后的uCOS-II 7.6 實驗過程與分析 (1)首先需要對相關(guān)寄存器做詳細的設(shè)定(2)用匯編語言編寫與處理器相關(guān)的函數(shù)(3)用分時的方法同時運行兩個任務(wù) OS_STK TaskName_Stack[STACKSIZE]={0, };//任務(wù)堆棧 void TaskName(void *Id);//任務(wù)函數(shù) #define TaskName_Prio N //任務(wù)優(yōu)先級 在main()函數(shù)中調(diào)用OSStart()函數(shù)之前用下列語句創(chuàng)建任務(wù): OSTaskCreate(TaskName,(void*)0,(OS_STK*)&TaskName_Stack[STACKSIZE-1], TaskName_Prio);OSTaskCreate()函數(shù)的原型是: INT8U OSTaskCreate(void(*task)(void *pd), void *p_arg, OS_STK *ptos, INT8U prio);(4)編寫任務(wù)函數(shù) 7.7 實驗結(jié)果總結(jié) 通過實驗達到了ucosII系統(tǒng)移植的目的,并編寫了一個簡單的多任務(wù)程序,分時運行。 7.8 心得體會 通過本次實驗了解了μC/OS-II 內(nèi)核的主要結(jié)構(gòu),掌握了ARM的C語言和匯編語言的編程方法。 8.實驗八 8.1 實驗名稱 各接口模塊相互銜接綜合實驗 8.2 實驗?zāi)康?/p> (1)回顧串口、鍵盤、LED接口、A/D、電機轉(zhuǎn)動、定時器中斷、LCD接口及觸摸屏驅(qū)動控制等接口模塊驅(qū)動設(shè)計及開發(fā)方法 (2)綜合應(yīng)用以上全部或者部分模塊,實現(xiàn)一個嵌入式綜合應(yīng)用系統(tǒng),要求至少用到8個模塊中的5個 8.3 實驗環(huán)境 (1)ADS1.2開發(fā)環(huán)境 (2)博創(chuàng)UP-NETARM3000 嵌入式開發(fā)平臺(3)PC(4)串口線 8.4 實驗內(nèi)容及要求 (1)綜合應(yīng)用串口、鍵盤、LED接口、A/D、電機轉(zhuǎn)動、定時器中斷、LCD接口及觸摸屏驅(qū)動控制等全部或者部分模塊(2)實現(xiàn)一個嵌入式綜合應(yīng)用系統(tǒng),要求至少用到8個模塊中的5個,盡量使綜合應(yīng)用系統(tǒng)具備合理的功能。 8.5 實驗設(shè)計與實驗步驟 (1)運行ADS1.2開發(fā)環(huán)境(2)新建工程文件 (3)將綜合實驗中用到的文件放到這個工程文件中(4)下載編譯好的文件到嵌入式控制器中運行 8.6 實驗過程與分析 (1)本次實驗設(shè)計主要是通過中斷來實現(xiàn),設(shè)定了flag=1,2,3,4,5,6六個標志位,對應(yīng)不同的鍵值來實現(xiàn)功能的切換 (2)通過num/lock鍵來控制直流電機(3)通過“/”鍵來控制步進電機 (4)通過“*”鍵來控制屏輸出“hello world”(5)通過“+”鍵來實現(xiàn)LED燈的計時 (6)通過“DEL”鍵來實現(xiàn)清屏和LED燈的清除 (7)通過“enter”鍵來進入到鍵值控制LED顯示的功能 8.7 實驗結(jié)果總結(jié) 實驗最終能實現(xiàn)5個功能的切換,但不足的是未涉及到觸摸屏的設(shè)計,并且最后的鍵值控制LED燈不能實現(xiàn)正常的中斷跳轉(zhuǎn)。 8.8 心得體會 通過本次綜合性的實驗來綜合之前做的串口、鍵盤、LED接口、A/D、電機轉(zhuǎn)動、定時器中斷、LCD接口及觸摸屏驅(qū)動控制實驗,回顧了之前的知識,對整體的運用有了進一步的了解,但是實驗結(jié)果仍有很多的不足,需要改進。 9.實驗總結(jié)與心得體會 通過之前的串口、鍵盤、LED接口、A/D、電機轉(zhuǎn)動、定時器中斷、LCD接口及觸摸屏驅(qū)動控制實驗這7個小模塊的實驗,對嵌入式系統(tǒng)的開發(fā)流程有了基本的了解,熟悉了博創(chuàng)UP-NETARM3000實驗臺和ADS1.2軟件的實驗環(huán)境,同時也掌握了各模塊功能實現(xiàn)功能的基本原理。在最后的綜合性實驗中,通過對以上知識的掌握和理解,進一步的對以上知識進行了加深和鞏固,雖然有幾次實驗實現(xiàn)的實驗結(jié)果并不是很成功,但還是達到了學習和理解的效果。 廣西工學院鹿山學院 實 驗 報 告 課程名稱: 嵌入式系統(tǒng) 指導教師: 劉瑞琪 班 級: 自動化101 姓 名: 楊杰 學 號: 20102787 成績評定: 指導教師簽字: 2013年5月25日 實驗一 簡單的程序 一 實驗?zāi)康模?、動手實踐一個簡單的字符型設(shè)備驅(qū)動程序。、學習Linux 驅(qū)動程序構(gòu)架。、學習在應(yīng)用程序中調(diào)用驅(qū)動。 二 實驗內(nèi)容: 編寫簡單的字符型設(shè)備驅(qū)動程序。編寫相應(yīng)的應(yīng)用程序。 三 實驗設(shè)備:、一套S3C2410RP 嵌入式實驗箱。、安裝Redhat9的宿主PC機,并且配置好 ARM Linux 的開發(fā)環(huán)境。 四 實驗步驟 實驗二 CPU GPIO 驅(qū)動程序及測試程序 一、實驗?zāi)康模?/p> 編寫第一個針對實際硬件的驅(qū)動程序,進一步了解驅(qū)動程序構(gòu)架。 二、實驗內(nèi)容:、編寫S3C2410 GPIO驅(qū)動程序。、編寫S3C2410 GPIO應(yīng)用程序。、在 LINUX系統(tǒng)中插入自己的驅(qū)動程序,調(diào)用它。實現(xiàn)用 CPU GPIO 控制外部LED,利用S3C2410 核心板上的 LED 驗證我們的工作。 三、實驗設(shè)備、一套S3C2410RP 嵌入式實驗箱。、安裝Redhat9的宿主PC機,并且配置好 ARM Linux 的開發(fā)環(huán)境。 四、實驗步驟 1、復制Experiment_KeyHello_driverapl_test文件下的simple_test_driver.c文件到Experiment_KeyGPIO文件夾下,將文件名更改為test.c。 2、打開test.c,在else語句后更改函數(shù)語句如下: 3、復制Experiment_KeyADapl_test文件夾下的Makefile到Experiment_KeyGPIO文件夾下,打開并將中的ADC刪除。 4、打開Experiment_KeyGPIOdriver文件下的gpio_led.c文件。 5、在ssize_t SIMPLE_GPIO_LED_ioctl函數(shù)下添加如下語句: if(cmd==0)GPBDAT &= ~(0xf<<5); if(cmd==1)GPBDAT |=(0xf<<5);如下圖所示: 6、在int __init HW_GPIO_LED_CTL_init函數(shù)下屏蔽for循環(huán),如下圖所示: 保存并關(guān)閉。 7、打開終端,并編譯test.c文件和gpio_led.c文件。 8、重新打開一個終端,并按步驟輸入如下語句: 9、依次輸入如下語句: 1、cd..2、ls 3、mknod /dev/hello_ctl c 97 1 4、./test 實驗三 中斷實驗及LED顯示 一、實驗?zāi)康模?/p> 學習Linux 系統(tǒng)是如何處理中斷。 二、實驗內(nèi)容: 編寫獲取和處理外中斷的驅(qū)動程序。 三、實驗設(shè)備:、一套S3C2410RP 嵌入式實驗箱。、安裝Redhat9的宿主PC機,并且配置好 ARM Linux 的開發(fā)環(huán)境。 四、實驗步驟 1、打開Experiment_KeyGPIOdriver文件下的gpio_led.c文件。 2、在ssize_t SIMPLE_GPIO_LED_ioctl函數(shù)下添加如下語句: if(cmd==0)GPBDAT &= ~(0xf<<5); if(cmd==1)GPBDAT |=(0xf<<5);如下圖所示: 3、在int __init HW_GPIO_LED_CTL_init函數(shù)下屏蔽for循環(huán),如下圖所示: 保存并關(guān)閉。 4、打開Experiment_KeyInterruptdriver下的Interrupt.c文件,并在其interrupt函數(shù)下添加for語句,如下圖所示: 5、打開終端,并編譯Interrupt.c文件和gpio_led.c文件。 6、重新打開一個終端,并按步驟輸入如下語句: 7、依次輸入如下語句: 1、cd /mnt/2410RP_linux/Experiment_Key/Interrupt/driver 2、ls 3、insmod Interrupt.o 實驗四 數(shù)碼管顯示實驗 一、實驗?zāi)康模?/p> 學習串并轉(zhuǎn)換的相關(guān)知識,并編寫驅(qū)動程序。 二、實驗內(nèi)容: 編寫針對zlg7289A 的驅(qū)動程序。 三、實驗設(shè)備:、一套S3C2410RP 嵌入式實驗箱。、安裝Redhat9的宿主PC機,并且配置好 ARM Linux 的開發(fā)環(huán)境。 四、實驗步驟 1、打開Experiment_KeySpi_leddriver文件夾下的spi_led.c 2、并在spi_ledInit函數(shù)下添加如下語句: 保存并關(guān)閉。 3、打開終端,并編譯spi_led文件。 4、重新打開一個終端,并輸入如下語句: 實驗五 AD 驅(qū)動實驗 一 實驗?zāi)康模?、了解模?shù)轉(zhuǎn)換的基本原理;、掌握模數(shù)轉(zhuǎn)換的編程方法。 二 實驗內(nèi)容:、編程對模擬量輸入進行采集和轉(zhuǎn)換,并將結(jié)果顯示在超級終端上。、通過改變模擬量輸入,觀察顯示結(jié)果。 三 實驗設(shè)備:、一套S3C2410RP 嵌入式實驗箱。、安裝Redhat9的宿主PC機,并且配置好 ARM Linux 的開發(fā)環(huán)境。 四 實驗步驟 1、在spi_led..c中的simpled ioctl中加入以下程序 2、在testADC中復制以下程序并修改如下 3、掛載程序 cd /mnt/2410RP_linux/Experiment_Key/spi_led/driver ls insmod spi_led.o cd /mnt/2410RP_linux/Experiment_Key/ad/driver insmod adc.o cd /mnt/2410RP_linux/Experiment_Key/ad/apl_test ls mknod /dev/spi c 104 1 ls ./testADC 嵌入式系統(tǒng)設(shè)計實驗報告 班 級:學 號:姓 名:成 績:指導教師: 20110612 2011061208 李曉虹 武俊鵬、劉書勇 1.實驗一 1.1 實驗名稱 博創(chuàng)UP-3000實驗臺基本結(jié)構(gòu)使用方法 1.2 實驗?zāi)康?/p> 1.熟悉嵌入式系統(tǒng)開發(fā)式流程概述。 2.熟悉UP-net3000實驗平臺的核心硬件電路和外設(shè)。3.熟悉ARM JTAG的安裝與使用。 1.3 實驗環(huán)境 硬件:ARM 嵌入式開發(fā)平臺、用于ARM7TDMI 的JTAG 仿真器、PC 機Pentium100 以 上、串口線。 軟件:PC 機操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā) 環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。 1.4 實驗內(nèi)容及要求 1.熟悉嵌入式系統(tǒng)開發(fā)式流程概述。 2.熟悉UP-net3000實驗平臺的核心硬件電路和外設(shè)。3.熟悉ARM JTAG的安裝與使用。 1.5 實驗設(shè)計與實驗步驟 1.新建超級終端 2.選擇ARM 開發(fā)實驗臺串口。 完成新建超級終端的設(shè)置以后,可以選擇超級終端文件菜單中的保存,將當前設(shè)置 3.保存為一個特定超級終端到桌面上,以備后用。用串口線將PC 機串口和平臺UART0 正確連接后,就可以在超級終端上看到程序輸出的信息了。4.啟動開發(fā)板,按住任意鍵,使開發(fā)板進入BIOS設(shè)置狀態(tài)。 5.在超級終端的界面上,顯示BIOS版本信息,以及相應(yīng)的測試指令。操作時,要在PC機上輸入小寫的字母快捷鍵,進入到相應(yīng)的功能中去。6.按照超級終端上的提示信息,進行功能的測試。 1.6 實驗過程與分析 本次實驗操作起來并不困難,因為此次實驗屬于驗證型實驗,按照實驗資料所給的提示信息,以上面的步驟,即可得到實驗的結(jié)果。進入到BIOS界面后,按照超級終端上的提示信息來進行功能 1.7 實驗結(jié)果總結(jié) 在實驗過程中,我們進行的很順利,沒有遇到什么問題,在超級終端界面,按提示的快 捷鍵來測試對應(yīng)的功能。如 e:測試由ZLG7289 驅(qū)動的LED 顯示,共分3 步,請看超級終端提示按任意鍵繼續(xù),同 時觀察LED 的變化,最后返回主菜單。 b:引導FLASH 中的應(yīng)用程序system.bin。執(zhí)行該功能將退出BIOS 狀態(tài),把控制交給應(yīng) 用程序,等。 1.8 心得體會 通過此次實驗,我對于實驗環(huán)境有了初步的了解與認識,對于嵌入式也有了更深一步的認識。同時實驗過程中,我學會了第一次接觸的超級終端的使用方法,并能夠熟練掌握,知道其工作的原理。 2.實驗二 2.1 實驗名稱 ADS1.2軟件開發(fā)環(huán)境使用方法 2.2 實驗?zāi)康?/p> 1.熟悉ADS1.2 開發(fā)環(huán)境,學會ARM 仿真器的使用。 2.使用ADS 編譯、下載、調(diào)試并跟蹤一段已有的程序,了解嵌入式開發(fā)的基本思想和過程。 2.3 實驗環(huán)境 硬件:ARM 嵌入式開發(fā)平臺、用于ARM7TDMI 的JTAG 仿真器、PC 機Pentium100 以 上、串口線。 軟件:PC 機操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā) 環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。 2.4 實驗內(nèi)容及要求 掌握AXD Debugger的使用方法,學習串行通訊原理,了解串行通訊控制器,閱讀ARM 芯片文檔,掌握ARM 的UART相關(guān)寄存器的功能,熟悉ARM 系統(tǒng)硬件的UART 相關(guān)接口。編程實現(xiàn)ARM 和計算機之間的串行通訊:ARM 監(jiān)視串行口;將接收到的字符再發(fā)送給串口(計算機與開發(fā)板是通過超級終端通訊的);即按PC 鍵盤通過超級終端發(fā)送數(shù)據(jù),開發(fā)板將接收到的數(shù)據(jù)再返送給PC,在超級終端上顯示。 2.5 實驗設(shè)計與實驗步驟 (1)新建工程,選擇菜單中的Project | Add Files 把和工程相關(guān)的所有文件包括init和startup 子目錄加入到工程中。ADS1.2 不能自動按文件類別對這些文件進行分類,需要的話可以執(zhí)行菜單Project | Create Group 創(chuàng)建文件組,然后分別將不同類的文件加入到不同的組,以方便管理。(另一種辦法是,在新建工程時ADS 創(chuàng)建了和工程同名的目錄,在該目錄下按類別創(chuàng)建子目錄并存放工程文件。選中所有目錄拖動到任務(wù)欄上的ADS 任務(wù)條上,不要松 開鼠標當ADS 窗口恢復后再拖動到工程文件窗口,松開鼠標。這樣ADS 將以子目錄名建立同名文件組并以此對文件分類。) (2)雙擊Main.c 打開該文件,可以看到Main()函數(shù)的內(nèi)容如下所示。int main(void){ ARMTargetInit();//開發(fā)版初始化 LCD_Init();LCD_ChangeMode(DspTxtMode);//轉(zhuǎn)換LCD 顯示模式為文本顯示模式 LCD_Cls();//文本模式下清屏命令 LCD_printf(“Hello world!n”);//向液晶屏輸出 Uart_Printf(“nHello world!n”);//向串口輸出 while(1);}(3)利用上個實驗中的通訊軟件超級終端來將生成的文件放到嵌入式開發(fā)平臺中。(4)重啟實驗臺即可看到LCD上顯示的“Hello world!” 2.6 實驗過程與分析 新建工程,然后將所需的工程文件加載打工程目錄下,編譯生成system.bin文件,將文件導入到實驗臺中,然后重啟實驗臺,即可得到實驗結(jié)果。 2.7 實驗結(jié)果總結(jié) 超級終端輸出一些相對應(yīng)的代碼的執(zhí)行結(jié)果。熟悉了ADS1.2 開發(fā)環(huán)境以及學會了ARM 仿真器的基本使用。使用ADS 編譯、下載、調(diào)試并跟蹤一段已有的程序,并大致了解了嵌入式開發(fā)的基本思想和過程。 2.8 心得體會 通過此次實驗,我對于嵌入式開發(fā)的基本思想有了一定的了解,嵌入式開發(fā)采用的是交叉編譯環(huán)境,所以在一些方面會有所限制。對于初學者來說,通過一兩次實驗結(jié)果的演示就能夠?qū)嶒炁_有深入的了解不可能的,所以在后續(xù)的實驗中,我要好好努力,認真做好課程實驗為后續(xù)的課程設(shè)計實驗打下基礎(chǔ)。 3.實驗三 3.1 實驗名稱 鍵盤及LED實驗 3.2 實驗?zāi)康?/p> 1.學習鍵盤及LED 驅(qū)動原理。 2.掌握ZLG7289芯片串行接口的使用方法,用ZLG7289芯片驅(qū)動17鍵的鍵盤和8個共陰極LED。 3.3 實驗環(huán)境 硬件:ARM 嵌入式開發(fā)平臺、用于ARM7TDMI 的JTAG 仿真器、PC 機Pentium100 以 上、串口線。 軟件:PC 機操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開 發(fā) 環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。 3.4 實驗內(nèi)容及要求 編寫出一段程序,要求能在LED上顯示出小鍵盤上按下的4位數(shù)字。 3.5 實驗設(shè)計與實驗步驟 1.新建工程,將“Exp3 鍵盤及LED 驅(qū)動實驗”中的文件添加到工程。2.定義ZLG7289 寄存器(ZLG7289.h)。3.編寫ZLG7289 驅(qū)動函數(shù)(ZLG7289.c)。4.定義鍵盤映射表:(Keyboard16.c)。5.定義鍵值讀取函數(shù)。 6.編寫主函數(shù),將按鍵值在數(shù)碼管上顯示。 3.6 實驗過程與分析 此次實驗中,我們根據(jù)已有實驗,進行調(diào)試,查看程序的運行效果。根據(jù)效果,我們又回到實驗代碼中,然后對代碼進行深入的研究,查看每部分功能所對應(yīng)的代碼,通過不斷的調(diào)試編譯,我們最終對該實驗用到的代碼有了更深的認識。從而能夠按照要求,完成我們自己實驗。 3.7 實驗結(jié)果總結(jié) 通過小鍵盤的按鍵,鍵值可以在LED上顯示出來。并學習了鍵盤及LED 驅(qū)動原理以及掌握了ZLG7289芯片串行接口的使用方法,用ZLG7289芯片驅(qū)動17鍵的鍵盤和8個共陰極LED。 3.8 心得體會 在這次實驗中讓我對嵌入式的實驗箱有了進一步的認識,并且進一步了解的ARM實驗的原理和實驗情況,能夠?qū)υ创a進行正確了理解。并且能修改這些源代碼能夠使其工作在自己的預(yù)期的工作狀態(tài)和輸出自己想要的結(jié)果 4.實驗四 4.1 實驗名稱 電機轉(zhuǎn)動控制及中斷實驗 4.2 實驗?zāi)康?/p> 1.熟悉ARM本身自帶的六路即三對PWM,掌握相應(yīng)寄存器的配置。 2.編程實現(xiàn)ARM系統(tǒng)的PWM輸出和I/O輸出,前者用于控制直流電機,后者用于控制步進電機。 3.了解直流電機和步進電機的工作原理,學會用軟件的方法實現(xiàn)步進電機的脈沖分配,即用軟件的方法代替硬件的脈沖分配器。 4.了解44B0處理器上中斷的應(yīng)用。 5.學習在44B0處理器上中斷的應(yīng)用。 6.進一步熟悉平臺外圍硬件及其驅(qū)動程序的編寫。 4.3 實驗環(huán)境 硬件:ARM 嵌入式開發(fā)平臺、用于ARM7TDMI 的JTAG 仿真器、PC 機Pentium100 以 上、串口線。 軟件:PC 機操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。 4.4 實驗內(nèi)容及要求 1.編程實現(xiàn)ARM芯片的一對PWM輸出用于控制直流電機的轉(zhuǎn)動,通過A/D旋鈕控制其轉(zhuǎn)動方式。 2.編程實現(xiàn)ARM的四路I/O通道,實現(xiàn)環(huán)形脈沖分配用于控制步進電機的轉(zhuǎn)動,通過A/D旋鈕控制步進電機的轉(zhuǎn)角。 3.通過鍵盤控制直流電機與步進電機的切換。4.設(shè)置并啟動定時器。 5.設(shè)置中斷,編寫定時器中斷服務(wù)程序,對中斷次數(shù)進行計數(shù)并在LED上顯示結(jié)果。 4.5 實驗設(shè)計與實驗步驟 1.添加并打開工程。 2.進行直流電機初始化設(shè)置和代碼編寫。3.進行步進電機初始化設(shè)置和代碼編寫。 4.對Timer3編程,編寫定時器中斷服務(wù)程序,完成對中斷次數(shù)的計數(shù)。5.編寫LED計數(shù)顯示函數(shù),使LED能正確計數(shù)并顯示0-9999。6.編寫中斷初始化函數(shù)和中斷響應(yīng)函數(shù)。7.終端下載測試。 4.6 實驗過程與分析 1.對直流電機進行編程和測試,掌握轉(zhuǎn)速和旋轉(zhuǎn)方向的設(shè)定方法。2.對步進電機進行編程和測試,掌握ARM的四路I/O通道,實現(xiàn)環(huán)形脈沖分配用于控制步進電機的轉(zhuǎn)動,通過A/D旋鈕控制步進電機的轉(zhuǎn)角。 3.對主函數(shù)進行編程,用鍵盤響應(yīng)直流電機與步進電機的切換控制。 4.掌握中斷相關(guān)語句的應(yīng)用,弄清定義的中斷向量、中斷向量號,編寫中斷響應(yīng)函數(shù),并完成中斷響應(yīng)控制。 4.7 實驗結(jié)果總結(jié) 實現(xiàn)了直流電機與步進電機的基本設(shè)置和控制,可以通過鍵盤控制電機之間的切換。完成了中斷的響應(yīng)和定時中斷。 在通過本次實驗,我初步了解的實驗的目的所在,并且利用所給的源代碼能夠,調(diào)試出所預(yù)期的結(jié)果,而且能夠根據(jù)已給的源代碼修改得到所需的結(jié)果。 4.8 心得體會 通過本次實驗,掌握了電機工作原理,了解了中斷的意義和實現(xiàn)方法,實現(xiàn)了簡單了中 斷處理程序,更加了解了中斷的意義。 5.實驗五 5.1 實驗名稱 LCD驅(qū)動控制實驗及觸摸屏驅(qū)動實驗 5.2 實驗?zāi)康?/p> 1.了解觸摸屏的基本概念與原理。 2.理解觸摸屏與LCD的關(guān)系。3.編程實現(xiàn)對觸摸屏的控制。 5.3 實驗環(huán)境 硬件:ARM 嵌入式開發(fā)平臺、用于ARM7TDMI 的JTAG 仿真器、PC 機Pentium100 以 上、串口線。 軟件:PC 機操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。 5.4 實驗內(nèi)容及要求 1.了解觸摸屏基本原理,理解對觸摸屏進行輸出標定、與LCD顯示器配合的過程。2.通過編程實現(xiàn)觸摸兩點自動在兩點間劃直線。3.通過編程實現(xiàn)在觸摸屏上動態(tài)畫出曲線。 5.5 實驗設(shè)計與實驗步驟 1.添加并打開工程。 2.在頭文件中定義宏和常量及驅(qū)動函數(shù)。3.校準觸摸屏坐標,進行坐標轉(zhuǎn)換。4.實現(xiàn)觸屏取點并顯示功能。5.實現(xiàn)兩點間自動劃線功能。6.實現(xiàn)觸摸屏動態(tài)劃線功能。 5.6 實驗過程與分析 1.在定義觸屏響應(yīng)功能的函數(shù)中對點擊觸屏進行響應(yīng)函數(shù)的修改,在其中添加修改點顏色的函數(shù),修改得到的觸摸點的顏色,并顯示在LCD上。 2.獲取第一個點坐標并儲存,獲取第二個點坐標并儲存,編寫劃線函數(shù),取得兩點間直線上所有點的坐標,并對其改變顏色,顯示在LCD上,即完成劃直線功能。 3.將劃線函數(shù)應(yīng)用到響應(yīng)觸屏移動消息的函數(shù)下,即可對連續(xù)獲得的觸摸坐標進行連續(xù)的畫短直線,連接成曲線,完成動態(tài)劃線功能。 5.7 實驗結(jié)果總結(jié) 了解了觸摸屏響應(yīng)動作消息的函數(shù)的工作原理,通過修改實現(xiàn)了觸摸屏響應(yīng)不同動作進行畫點、劃線、動態(tài)劃線的功能。 5.8 心得體會 通過本次實驗,使我了解了怎么在一塊嵌入式實驗箱 通過編程控制實驗箱上得硬件,比如在本次實驗中的控制LCD屏幕就是,在屏幕上點擊,然后得到在LCD屏上點擊的位置。本次實驗初步完成了實驗結(jié)果。 6.實驗六 6.1 實驗名稱 UCOS-Ⅱ在ARM微處理器上的裁剪 6.2 實驗?zāi)康?/p> 1.了解UCOS-Ⅱ內(nèi)核的主要結(jié)構(gòu)。 2.掌握UCOS-Ⅱ裁剪的基本原理與嵌入式編程實現(xiàn)方法。3.學習如何根據(jù)具體情況對UCOS-Ⅱ操作系統(tǒng)進行裁剪。 4.通過對UCOS-Ⅱ配置文件(OS_CFG.H)中相關(guān)的配置常量進行設(shè)置,實現(xiàn)對UCOS-Ⅱ的裁剪。 6.3 實驗環(huán)境 硬件:ARM 嵌入式開發(fā)平臺、用于ARM7TDMI 的JTAG 仿真器、PC 機Pentium100 以 上、串口線。 軟件:PC 機操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。 6.4 實驗內(nèi)容及要求 對UCOS-Ⅱ內(nèi)核進行裁剪并移植到ARM7微處理器上。 6.5 實驗設(shè)計與實驗步驟 編輯OS_CFG.H文件。OS_CFG.H文件中的內(nèi)容可分為兩大類:服務(wù)功能的配置和數(shù)據(jù)結(jié)構(gòu)的配置。 一.服務(wù)功能的配置: 根據(jù)程序中的實際情況,保留自己要用的系統(tǒng)服務(wù)功能,刪除自己不需要的服務(wù)功能。進行合理配置后,是我們自己系統(tǒng)的目標代碼比較緊湊,從而降低了對程序代碼存儲空間的要求。如果代碼存儲空間足夠大的話,那就將全部系統(tǒng)服務(wù)功能全部配置為1。不需要考慮功能裁剪。 二.數(shù)據(jù)結(jié)構(gòu)功能的配置: 與任務(wù)有關(guān)的數(shù)據(jù)結(jié)構(gòu) 1.OS_MAX_TASKS 作用:設(shè)置用戶程序中可以使用的最多任務(wù)數(shù)。說明:該值不能超過62.舉例: 若程序中用到了三個任務(wù),則該值的最小值 2.OS_LOWEST_PRIO 作用:設(shè)置程序中最低任務(wù)的優(yōu)先級。 說明: 設(shè)定該值可以節(jié)省操作系統(tǒng)使用RAM的空間。任務(wù)的最低優(yōu)先級和最大任務(wù)數(shù)是沒有直接關(guān)系的。 6.6 實驗過程與分析 按照實驗指導書上的步驟進行,得到了要求的系統(tǒng)。 6.7 實驗結(jié)果總結(jié) 按照要求進行了裁剪,得到了滿足需要又緊湊的應(yīng)用軟件系統(tǒng)。 6.8 心得體會 了解了UCOS-Ⅱ內(nèi)核的主要結(jié)構(gòu),掌握了UCOS-Ⅱ裁剪的基本原理與嵌入式編程實現(xiàn)方法,學會了如何根據(jù)具體情況對UCOS-Ⅱ操作系統(tǒng)進行裁剪 7.實驗七 7.1 實驗名稱 ucos-II移植實驗 7.2 實驗?zāi)康?/p> 1.了解UCOS-Ⅱ內(nèi)核的主要結(jié)構(gòu)。 2.掌握將UCOS-Ⅱ內(nèi)核移植到ARM7處理器上的基本方法。 7.3 實驗環(huán)境 硬件:ARM 嵌入式開發(fā)平臺、用于ARM7TDMI 的JTAG 仿真器、PC 機Pentium100 以 上、串口線。 軟件:PC 機操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。 7.4 實驗內(nèi)容及要求 1.將UCOS-Ⅱ內(nèi)核進行移植到ARM7微處理器上。 2.編寫兩個簡單任務(wù),在超級終端上觀察兩個任務(wù)的切換。 7.5 實驗設(shè)計與實驗步驟 1.該實驗的文件分為兩類,其一是STARTUP 目錄下的系統(tǒng)初始化、配置等文件,其二是uCOS-II 的全部源碼,arch 目錄下的3 個文件是和處理器架構(gòu)相關(guān)的。 2.設(shè)置os_cpu.h 中與處理器和編譯器相關(guān)的代碼 3.用C 語言編寫6 個操作系統(tǒng)相關(guān)的函數(shù)(OS_CPU_C.C)4.用匯編語言編寫4 個與處理器相關(guān)的函數(shù)(OS_CPU.ASM)5.編寫一個簡單的多任務(wù)程序來測試一下移植是否成功。 為了使 uCOS-II 可以正常運行,除了上述必須的移植工作外,硬件初始化和配置文件也是必須的。STARTUP 目錄下的文件還包括中斷處理,時鐘,串口通信等基本功能函數(shù)。在文件 main.c 中給出了應(yīng)用程序的基本框架,包括初始化和多任務(wù)的創(chuàng)建,啟動等。任務(wù) 創(chuàng)建方法如下: ①在程序開頭定義任務(wù)堆棧,任務(wù)函數(shù)聲明和任務(wù)優(yōu)先級 ②在main()函數(shù)中調(diào)用OSStart()函數(shù)之前用下列語句創(chuàng)建任務(wù) ③編寫任務(wù)函數(shù)內(nèi)容 6.編譯并下載移植后的uCOS-II 所有的源代碼都準備好后就可以進行編譯了。在ADS 環(huán)境下需要設(shè)置工程的訪問路徑。從菜單Edit | Debug Settings 進入設(shè)置對話框,在Target | Access Paths 中選擇User Paths 并選上Always search user paths。然后點Add 按鈕添加路徑ucos-ii 和arch。這主要是設(shè)置編譯器處理文件包含時的搜索范圍。按照實驗一的方法可以對編譯后的代碼進行調(diào)試或下載到平臺的電子硬盤中。這個實驗從結(jié)構(gòu)上看和其他的實驗沒有多大區(qū)別,同樣生成可執(zhí)行文件system.bin。可以在平臺BIOS中激活電子硬盤,然后把system.bin 拷貝進去,重啟平臺,然后在超級終端上觀察結(jié)果。 7.6 實驗過程與分析 操作系統(tǒng)相關(guān)的函數(shù):(1)OSTaskStkInit OSTaskCreate()和OSTaskCreateExt()通過調(diào)用OSTaskStkInit()來初始化任務(wù)的堆棧結(jié)構(gòu)。因此,堆??雌饋砭拖駝偘l(fā)生過中斷并將所有的寄存器保存到堆棧中的情形一樣。圖12A-2 顯示了OSTaskStkInt()放到正被建立的任務(wù)堆棧中的東西。這里我們定義了堆棧是從上往下 長的。在用戶建立任務(wù)的時候,用戶傳遞任務(wù)的地址,pdata 指針,任務(wù)的堆棧棧頂和任務(wù)的優(yōu)先級給OSTaskCreate()和OSTaskCreateExt()。一旦用戶初始化了堆棧,OSTaskStkInit()就需要返回堆棧指針所指的地址。OSTaskCreate()和OSTaskCreateExt()會獲得該地址并將它保存到任務(wù)控制塊(OS_TCB)中。 (2)OSTaskCreateHook 當用OSTaskCreate()和OSTaskCreateExt()建立任務(wù)的時候就會調(diào)用OSTaskCreateHook()。該函數(shù)允許用戶或使用移植實例的用戶擴展uCOS-II 功能。當uCOS-II 設(shè)置完了自己的內(nèi)部結(jié)構(gòu)后,會在調(diào)用任務(wù)調(diào)度程序之前調(diào)用OSTaskCreateHook()。該函數(shù)被調(diào)用的時候中斷是禁止的。因此用戶應(yīng)盡量減少該函數(shù)中的代碼以縮短中斷的響應(yīng)時間。當 OSTaskCreateHook()被調(diào)用的時候,它會收到指向已建立任務(wù)的OS_TCB 的指針,這 樣它就可以訪問所有的結(jié)構(gòu)成員了。函數(shù)原型:void OSTaskCreateHook(OS_TCB *ptcb) (3)OSTaskDelHook 當任務(wù)被刪除的時候就會調(diào)用OSTaskDelHook()。該函數(shù)在把任務(wù)從uCOS-II 的內(nèi)部任 務(wù)鏈表中解開之前被調(diào)用。當OSTaskDelHook()被調(diào)用的時候,它會收到指向正被刪除任務(wù) 的OS_TCB 的指針,這樣它就可以訪問所有的結(jié)構(gòu)成員了。OSTaskDelHook()可以來檢驗TCB擴展是否被建立(一個非空指針)并進行一些清除操作。函數(shù)原型:void OSTaskDelHook(OS_TCB *ptcb)(4)OSTaskSwHook 當發(fā)生任務(wù)切換的時候就會調(diào)用OSTaskSwHook()。OSTaskSwHook()可以直接訪問 OSTCBCur 和OSTCBHighRdy,因為它們是全局變量。OSTCBCur 指向被切換出去的任務(wù) OS_TCB,而OSTCBHighRdy 指向新任務(wù)OS_TCB。注意在調(diào)用OSTaskSwHook()期間中斷 一直是被禁止的。因此用戶應(yīng)盡量減少該函數(shù)中的代碼以縮短中斷的響應(yīng)時間。函數(shù)原型:void OSTaskSwHook(void) (5)OSTaskStatHook OSTaskStatHook()每秒鐘都會被OSTaskStat()調(diào)用一次。用戶可以用OSTaskStatHook() 來擴展統(tǒng)計功能。例如,用戶可以保持并顯示每個任務(wù)的執(zhí)行時間,每個任務(wù)所用的CPU 份額,以及每個任務(wù)執(zhí)行的頻率等。函數(shù)原型:void OSTaskStatHook(void)(6)OSTimeTickHook OSTimeTickHook()在每個時鐘節(jié)拍都會被OSTaskTick()調(diào)用。實際上OSTimeTickHook()是在節(jié)拍被uCOS-II 真正處理,并通知用戶的移植實例或應(yīng)用程序之前被調(diào)用的。函數(shù)原型:void OSTimeTickHook(void) 7.7 實驗結(jié)果總結(jié) 在超級終端上輸出輪流交替run task1和run task2,表明系統(tǒng)正在不斷交替運行2個任務(wù)。 7.8 心得體會 在這個實驗中我們初步了解和測試了實驗的內(nèi)容和源代碼實驗結(jié)果基本上符合預(yù)期的要求。了解了μC/OS-II 內(nèi)核的主要結(jié)構(gòu)和ARM7處理器結(jié)構(gòu),掌握了將μC/OS-II 內(nèi)核移植到ARM 7 處理器上的基本原理與嵌入式編程實現(xiàn)方法。 8.實驗八 8.1 實驗名稱 各接口模塊相互銜接綜合實驗 8.2 實驗?zāi)康?/p> 利用前7次實驗所學的知識,綜合設(shè)計一個至少含有5個模塊的實驗。 8.3 實驗環(huán)境 硬件:ARM 嵌入式開發(fā)平臺、用于ARM7TDMI 的JTAG 仿真器、PC 機Pentium100 以 上、串口線。 軟件:PC 機操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。 8.4 實驗內(nèi)容及要求 1.回顧串口、鍵盤、LED接口、A/D、電機轉(zhuǎn)動、定時器中斷、LCD接口及觸摸屏驅(qū)動控制接口模塊驅(qū)動設(shè)計及開發(fā)方法。 2.綜合應(yīng)用以上全部或者部分模塊,實現(xiàn)一個嵌入式綜合應(yīng)用系統(tǒng),要求至少5個模塊。 3.盡量使綜合應(yīng)用具有合理功能。 8.5 實驗設(shè)計與實驗步驟 1.新建工程,添加所需的文件。 2.編寫計算器的計算程序caculator.c以及caculator.h文件。3.編寫音樂播放文件play.c以及play.h文件。 4.修改鍵盤映射表讓鍵盤上的數(shù)字與LCD與LED屏幕上顯示的數(shù)字相對應(yīng)。5.對輸出在LCD屏幕上的顯示結(jié)構(gòu)進行設(shè)計 6.進行裁剪和移植功能設(shè)計和完成。編譯生成system.bin文件,將文件拷貝至實驗臺內(nèi),重啟實驗臺即可看到實驗效果 8.6 實驗過程與分析 1.完成10以內(nèi)的加減乘除的計算功能,通過鍵盤輸入,可在LCD屏幕上顯示輸入的表達式以及得到的輸出結(jié)果。如“2+3=5”。 2.按任務(wù)切換鍵,實現(xiàn)任務(wù)的切換。3.任務(wù)被切換到播放音樂的任務(wù)中去。 4.任務(wù)切換過程將會在串口的超級終端界面有所顯示,同時我們設(shè)置的將LCD上顯示的結(jié)果同步到超級終端上。實現(xiàn)串口通信。 5.利用到了直流電機,如果運算范圍超出我們規(guī)定的運算范圍,則電機轉(zhuǎn)動,來提示錯誤。 6.實現(xiàn)裁剪與移植功能。 8.7 實驗結(jié)果總結(jié) 在這次實驗中,我們利用前面所學習的知識,綜合利用在此次實驗中,我們利用了前面好所學知識中的6個模塊,分別是串口通訊,鍵盤控制,LED與LCD的輸出,電機控制,以及裁剪與移植的功能。通過這些功能的結(jié)合,我們實現(xiàn)自己所設(shè)計的實驗的功能。 8.8 心得體會 在此次實驗中,我們遇到了一些問題但是過程中遇到了不少問題,說明對實驗原理和語句編寫還不是很熟悉??偟膩碚f,通過這段時間的訓練,我也學會了不少東西,了解了ARM的基本結(jié)構(gòu),功能等。 9.實驗總結(jié)與心得體會 通過這次為期一周的嵌入式課程實驗,我對于嵌入式有了更加深刻的了解與認識。我是第一次接觸嵌入式,以前對于嵌入式的知識了解甚少,但是通過此次實驗,我不僅了解了嵌入式,也學會了許多關(guān)于嵌入式方面的知識。 通過前面的基礎(chǔ)實驗,我們對于ARM環(huán)境有了更深的了解,掌握了博創(chuàng)平臺的使用方法,例如如何使用小鍵盤,如何使用LCD、LED屏幕,如何控制終端,如何進行多任務(wù)之間的切換等等。通過這幾次的基礎(chǔ)課程實驗,我們最后出了計算器,能夠?qū)崿F(xiàn)10以內(nèi)的加減乘除,在此基礎(chǔ)上我們利用多任務(wù),實現(xiàn)播放音樂與計算的切換,還利用點擊的轉(zhuǎn)動來提示運算過程中出現(xiàn)的問題。 通過這幾次實驗,為我們以后的課程設(shè)計實驗打下了堅實的基礎(chǔ),相信有了這幾天系統(tǒng)實驗的培訓,我們的課程設(shè)計實驗做起來會更加輕松。第四篇:嵌入式系統(tǒng)實驗報告
第五篇:嵌入式系統(tǒng)實驗報告