嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告_第1頁(yè)
嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告_第2頁(yè)
嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告_第3頁(yè)
嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告_第4頁(yè)
嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余5頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、 嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告學(xué) 號(hào): 姓 名: 班 級(jí):13電子信息工程 指導(dǎo)老師: 大學(xué) 電子信息學(xué)院2016年12月實(shí)驗(yàn)一:一個(gè)燈的閃爍1、 實(shí)驗(yàn)要求實(shí)現(xiàn)PF6-10端口所連接的任意一個(gè)LED燈點(diǎn)亮2、電路原理圖圖1 LED燈硬件連接圖3、軟件分析RCC_Configuration();/* 配置系統(tǒng)時(shí)鐘 */ GPIO_Configuration();/* 配置GPIO IO口初始化 */ for(;) GPIOF->ODR = 0xfcff; /* PF8=0 -> 點(diǎn)亮D3 */Delay(1000000);GPIOF->ODR = 0xffff; /* PF8=1 -&g

2、t; 熄滅D3 */Delay(1000000);4、實(shí)驗(yàn)現(xiàn)象通過(guò)對(duì)GPIOF8的操作,可以使LED3閃爍5、 實(shí)驗(yàn)總結(jié)這是第一次使用STM32開發(fā)板,主要容是對(duì)IO端口進(jìn)行配置,點(diǎn)亮與IO端口相連接的LED燈,閃爍周期為2S。通過(guò)本實(shí)驗(yàn)對(duì)STM32開發(fā)板的硬件原理有了初步了解。實(shí)驗(yàn)二:流水燈1、實(shí)驗(yàn)要求實(shí)現(xiàn)PF6-10端口所連接的5個(gè)LED燈順次亮滅2、電路原理圖圖1 流水燈硬件連接圖3、軟件分析10 / 10int main(void) RCC_Configuration();/* 配置系統(tǒng)時(shí)鐘 */ GPIO_Configuration();/* 配置GPIO IO口初始化 */ for

3、(;) GPIOF->ODR = 0xffbf; /* PF6=0 -> 點(diǎn)亮LED1 */ Delay(5000000);GPIOF->ODR = 0xff7f; /* PF7=0 -> 點(diǎn)亮LED2 */Delay(5000000);GPIOF->ODR = 0xfeff; /* PF8=0 -> 點(diǎn)亮LED3 */Delay(5000000);GPIOF->ODR = 0xfdff; /* PF9=0 -> 點(diǎn)亮LED4 */Delay(5000000); GPIOF->ODR = 0xfbff; /* PF10=0 -> 點(diǎn)亮

4、LED5 */ 4、實(shí)驗(yàn)現(xiàn)象LED1LED5依次點(diǎn)亮,亮滅的時(shí)間間隔都為1S。5、實(shí)驗(yàn)總結(jié)本次實(shí)驗(yàn)對(duì)STM32開發(fā)板的GPIO端口進(jìn)行進(jìn)一步學(xué)習(xí),通過(guò)程序可以實(shí)現(xiàn)流水燈的閃爍。實(shí)驗(yàn)三:?jiǎn)渭?jí)外部中斷1、實(shí)驗(yàn)要求按下某個(gè)按鍵,觸發(fā)中斷,中斷服務(wù)程序改變LED燈狀態(tài)2、電路原理圖圖3 SW1硬件原理圖3、軟件分析int main() RCC_Configuration(); /* 配置系統(tǒng)時(shí)鐘 */ GPIO_Configuration(); /* IO口初始化 */GPIO_Write(GPIOF,0xffff); /* 全滅 */Delay(5000); while(1) if(GPIO_Rea

5、dInputDataBit(GPIOA, GPIO_Pin_8)=0) /* 如果SW1 PA8=0 */GPIO_SetBits(GPIOF, GPIO_Pin_6); /* LED1點(diǎn)亮 */Delay(0x1FFFFF);GPIO_ResetBits(GPIOF, GPIO_Pin_6); /* LED1 熄滅 */Delay(0x1FFFFF);4、實(shí)驗(yàn)現(xiàn)象原來(lái)5個(gè)LED燈都處于熄滅狀態(tài),按下SW1,觸發(fā)中斷程序,LED1點(diǎn)亮。5、實(shí)驗(yàn)總結(jié)通過(guò)本次實(shí)驗(yàn),可以對(duì)某一狀態(tài)通過(guò)外部中斷,改變其當(dāng)前狀態(tài)。實(shí)驗(yàn)四:多中斷嵌套1、實(shí)驗(yàn)要求按下某個(gè)按鍵,觸發(fā)中斷,中斷服務(wù)程序改變LED燈狀態(tài)2、電路

6、原理圖圖4 SW1,SW2,SW3硬件原理圖3、軟件分析NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel; /設(shè)定中斷源為PA0NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; /中斷占優(yōu)先級(jí)為0NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQChannel; /設(shè)定中斷源為PD3NVIC_InitStructure.NVIC_IRQC

7、hannelPreemptionPriority = 1; /中斷占優(yōu)先級(jí)為1NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel; /設(shè)定中斷源為PA8NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; /中斷占優(yōu)先級(jí)為2void EXTI0_IRQHandler(void)int i=0;if(EXTI_GetITStatus(EXTI_Line0) != RESET)for(i=0;i<10;i+)GPIO_Write(GPIOF,0xffff);GPIO_Se

8、tBits(GPIOF, GPIO_Pin_6);/* LED1 點(diǎn)亮 */Delay(0x5fFFFF);GPIO_ResetBits(GPIOF, GPIO_Pin_6);/* LED1 熄滅 */ Delay(0x5fFFFF);EXTI_ClearITPendingBit(EXTI_Line0); void EXTI3_IRQHandler(void)int i=0;if(EXTI_GetITStatus(EXTI_Line3) != RESET) for(i=0;i<10;i+) GPIO_Write(GPIOF,0xffff);GPIO_SetBits(GPIOF, GPIO

9、_Pin_7);/* LED2 點(diǎn)亮 */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 點(diǎn)亮

10、*/Delay(0x5fFFFF);GPIO_ResetBits(GPIOF, GPIO_Pin_8);/* LED3 熄滅 */ Delay(0x5fFFFF);EXTI_ClearITPendingBit(EXTI_Line8);4、實(shí)驗(yàn)現(xiàn)象中斷優(yōu)先級(jí)從高到低依次為:SW3,SW2,SW1原來(lái)5個(gè)LED燈都處于熄滅狀態(tài),按下SW1,LED3應(yīng)該閃爍10次,當(dāng)其閃爍5次后按下SW2,LED2也應(yīng)該閃爍10次,當(dāng)其閃爍4次后按下SW3,LED1也應(yīng)該閃爍10次,則當(dāng)LED1閃爍完10次后,LED2繼續(xù)閃爍6次,之后LED1繼續(xù)閃爍5次。5、實(shí)驗(yàn)總結(jié)通過(guò)本次實(shí)驗(yàn),可以對(duì)LED狀態(tài)實(shí)行中斷嵌套,由

11、以上實(shí)驗(yàn)現(xiàn)象,得出以下結(jié)論:高中斷優(yōu)先級(jí)可以打斷低優(yōu)先級(jí),中斷系統(tǒng)正在執(zhí)行一個(gè)中斷服務(wù)時(shí),有另一個(gè)優(yōu)先級(jí)更高的中斷提出中斷請(qǐng)求,這時(shí)會(huì)暫時(shí)終止當(dāng)前正在執(zhí)行的級(jí)別較低的中斷源的服務(wù)程序,去處理級(jí)別更高的中斷源,待處理完畢,再返回到被中斷了的中斷服務(wù)程序繼續(xù)執(zhí)行,反之,低中斷優(yōu)先級(jí)不可以打斷高優(yōu)先級(jí)。實(shí)驗(yàn)五:TIM2的基本應(yīng)用1、實(shí)驗(yàn)要求TIM2定時(shí)器將LED燈定時(shí)點(diǎn)亮和熄滅一定的時(shí)間2、電路原理圖3、軟件分析TIM_Cmd(TIM2, ENABLE); /* TIM2 enable counter */ TIM_TimeBaseStructure.TIM_Period = 1999; TIM_T

12、imeBaseStructure.TIM_Prescaler = 35999; /定時(shí)時(shí)間為1svoid TIM2_IRQHandler(void)TIM_ClearITPendingBit(TIM2, TIM_IT_Update); GPIO_WriteBit(GPIOF, GPIO_Pin_6,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOF, GPIO_Pin_6); 4、實(shí)驗(yàn)現(xiàn)象LED1燈按照1S的定時(shí)時(shí)間不斷閃爍5、實(shí)驗(yàn)總結(jié)通過(guò)本次實(shí)驗(yàn),可以實(shí)現(xiàn)對(duì)LED燈進(jìn)行定時(shí)控制其閃爍,而不需要延時(shí)函數(shù)控制了,定時(shí)時(shí)間較為精準(zhǔn)。實(shí)驗(yàn)六:TIM2,TIM3,TI

13、M4多定時(shí)器的應(yīng)用1、實(shí)驗(yàn)要求利用TIM2,TIM3,TIM4定時(shí)器使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.N

14、VIC_IRQChannel = TIM4_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;此處比上一個(gè)實(shí)驗(yàn)增加了2個(gè)定時(shí)器,同時(shí)又增加了一個(gè)優(yōu)先級(jí)4、實(shí)驗(yàn)現(xiàn)象中斷優(yōu)先級(jí)從高到低依次為:TIM2,TIM3,TIM4首先LED1以1S的定時(shí)時(shí)間閃爍5次,之后LED2以2S的定時(shí)時(shí)間閃爍5次,最后LED3以3S的定時(shí)時(shí)間閃爍5次5、實(shí)驗(yàn)總結(jié)利用定時(shí)器可以同時(shí)使LED燈按照不同的頻率閃爍,但是為了現(xiàn)象明顯,可以加一個(gè)優(yōu)先級(jí),分別觀察現(xiàn)象。實(shí)驗(yàn)七:串口USART1讀取CPU的ID號(hào)1、實(shí)驗(yàn)要求通過(guò)USART1讀取

15、CPU 的 96 bit ID2、電路原理圖圖 開發(fā)板USART原理圖3、軟件分析void Get_ChipID(void)/*獲取芯片ID */ChipUniqueID0 = *( u32 *)(0X1FFFF7F0); /* 高字節(jié) */ChipUniqueID1 = *( u32 *)(0X1FFFF7EC); ChipUniqueID2 = *( u32 *)(0X1FFFF7E8); /* 低字節(jié) */void USART_Configuration(void) USART_InitTypeDef USART_InitStructure; USART_InitStructure.US

16、ART_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

17、 = 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、實(shí)驗(yàn)現(xiàn)象PA9連接的是USART1 Tx,PA10連接的是USART1 Rx,再

18、通過(guò)串口調(diào)試助手就可以在電腦上面顯示出CPU的ID以及flash容量大小。5、實(shí)驗(yàn)總結(jié)本次實(shí)驗(yàn)實(shí)現(xiàn)了串口和PC機(jī)的傳輸,可以通過(guò)USART1將CPU的ID在電腦上顯示出來(lái)。實(shí)驗(yàn)八:異步通信USART2的重映射1、 實(shí)驗(yàn)要求實(shí)現(xiàn)異步通信USART2的重映射,將數(shù)據(jù)傳送到PC機(jī)上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

溫馨提示

  • 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)論