王其平的實(shí)習(xí)報(bào)告_第1頁(yè)
王其平的實(shí)習(xí)報(bào)告_第2頁(yè)
王其平的實(shí)習(xí)報(bào)告_第3頁(yè)
王其平的實(shí)習(xí)報(bào)告_第4頁(yè)
王其平的實(shí)習(xí)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 目錄 第一章 keil uVision4軟件的安裝1第二章 工程文件夾的建立1第三章 串口5第四章 按鍵7第五章 SPI9第六章 LCD12第七章 DMA14第八章 GPIO口19第一章 keil uVision4軟件的安裝1. 打開壓縮包中的Keil ARMKil4 mdk460 。22. 安裝完畢打開uVision4,點(diǎn)擊復(fù)制右上角的CID再打開壓縮包中KEIL_Lic4點(diǎn)擊Generate生成許可號(hào)5將許可號(hào)復(fù)制到License Management6,注冊(cè)成功。第二章 工程文件夾的建立1、 從固件庫(kù)里面拷貝Libraries到我們的工程目錄下.2、 再新建兩個(gè)文件夾obj-存放工程生

2、成的文件 user-存放我們以后自己新建的.c .h文件.3、 進(jìn)入user目錄新建兩個(gè)文件夾 inc-存放我們的.h文件 src-存放我們的.c文件.4、 去到固件庫(kù)里面的project里面STM32F10x_StdPeriph_Template.5、 新建工程文件 STM32project.6、 選擇工程存放位置.7、 選擇CPU型號(hào) STM32F103ZE.8、 是否選擇KEIL帶的啟動(dòng)文件.9、 修改工程文件.10、 修改文件夾名和新建文件夾StdDriver、user.11、 添加文件.3個(gè)文件12、 修改編譯環(huán)境.13、 建main.c文件.#include stm32f10x.h

3、int main(void)while(1)編譯文件14、工程文件說明.模塊化編程-每一個(gè)模塊獨(dú)立建立.h-函數(shù)聲明 變量聲明(聲明的函數(shù)/變量可以被其它.c文件調(diào)用) .c文件-函數(shù)的實(shí)現(xiàn) 變量定義。第三章 串口1、 通用同步異步收發(fā)器 USART Universal Synchronous/Asynchronous Receiver/Transmitter串口收發(fā)器可以配置為同步模式,也可以配置為異步模式但是一般使用的是異步模式,同步模式很少使用,大家有興趣的話可以自己研究下也就是我們今天要講的是通用異步收發(fā)器 UART UART:通用異步收發(fā)器 1 、串口:一個(gè)字節(jié),一根數(shù)據(jù)線,數(shù)據(jù)一位

4、一位發(fā)送 并口:一個(gè)字節(jié),8根數(shù)據(jù)線,字節(jié)的各個(gè)位同時(shí)發(fā)送2、 同步:有時(shí)鐘線,根據(jù)時(shí)鐘線上的時(shí)鐘脈沖,主從設(shè)備來決定自己是收數(shù)據(jù)還是發(fā)數(shù)據(jù)3、上面講了怎么傳輸數(shù)據(jù),還有一個(gè)主從機(jī)數(shù)據(jù)的傳輸方向問題了 全雙工:收發(fā)同時(shí)進(jìn)行 就是現(xiàn)在電話機(jī) 手機(jī) 線:3條:發(fā)TX 收RX 共地GND 半雙工(分時(shí)復(fù)用):收發(fā)同一時(shí)間只能有一個(gè)在進(jìn)行 對(duì)講機(jī) 線:2條:收發(fā)公用一條線 共地 單工:只能發(fā)/只能收 打印機(jī) 二、 串口驅(qū)動(dòng)程序設(shè)計(jì),實(shí)現(xiàn)電腦與開發(fā)板的通信我們使用串口1-UART11、串口的初始化初始化引腳-PA9,PA10 PA9-USART1_TX-推挽輸出-2M 9600 115200 PA10-

5、USART1_RX-浮空輸入-電平更加穩(wěn)定初始化串口模塊-設(shè)置數(shù)據(jù)幀和波特率,工作模式使能串口模塊,使能發(fā)送,使能接收2、 串口發(fā)送函數(shù)While(USART-SR&(1DR =data;3、 串口接收函數(shù)signed char USART1_receive(void)u8 data;if(USART1-SR&(1DR;return data;return -1; 4、電腦串口助手與開發(fā)板的通信實(shí)現(xiàn)數(shù)據(jù)回顯三、 用printf()從串口輸出microlib 提供了一個(gè)有限的 stdio 子系統(tǒng),它僅支持未緩沖的 stdin、stdout 和 stderr。 這樣,即可使用 printf() 來

6、顯示應(yīng)用程序中的診斷消息。要使用高級(jí) I/O 函數(shù),您必須提供自己實(shí)現(xiàn)的以下基本函數(shù),以便與您自己的 I/O 設(shè)備配合使用。fputc()為所有輸出函數(shù)實(shí)現(xiàn)此基本函數(shù)。 例如,fprintf()、printf()、fwrite()、fputs()、puts()、putc() 和 putchar()。int fputc(int ch, FILE *f)UART2_SendByte(ch); return (ch);四、 串口重映射五、配置其它串口第四章 按鍵1、 弄清按鍵所接引腳的配置屬性按鍵有兩種狀態(tài):按下去和沒按的狀態(tài)。比如說: CPU通過檢測(cè)引腳是高電平還是低電平,來判斷按鍵是否按下去那么

7、引腳應(yīng)該配置為什么屬性?輸入- 浮空輸入-1,檢測(cè)外部信號(hào) 2,引腳外面接有上拉電阻或下拉電阻按鍵引腳外面接有上拉電阻,選擇浮空輸入下拉輸入-上拉輸入-模擬輸入-2、 程序如何判斷外部IO口的高低電平 GPIOx-IDR &(1IDR &(1IDR&(1IDR)&(1IDR&(1n)=1;判斷低電平:(GPIOx-IDR&(1IDR)&(1IDR&(1n)=0; 3、設(shè)計(jì)程序?qū)崿F(xiàn)按鍵,按一次燈亮,再按一次燈滅 1、先把延時(shí)函數(shù)添加進(jìn)去:添加delay_us delay_ms函數(shù)到工程 一定要:初始化延時(shí)函數(shù) delay_init(72); delay_ms();最大只能延時(shí):1864ms 2、

8、消抖 4、 狀態(tài)機(jī)的運(yùn)用定義一個(gè)靜態(tài)變量,專門用來標(biāo)示按鍵的狀態(tài)為什么要定義一個(gè)靜態(tài)變量來表示按鍵的狀態(tài)?5、 位帶操作像單片機(jī)一樣操作引腳PAout(n);PAin(n);PBout(n);PBin(n);PXout(n);PXin(n);原理:Cortex-M3 的內(nèi)部存儲(chǔ)空間有2 個(gè)“位帶區(qū)”,分別稱為“ SRAM 位帶區(qū)”和“外設(shè)存儲(chǔ)位帶區(qū)”,各自位于 SRAM 區(qū)和外設(shè)存儲(chǔ)區(qū)各自最低的 1MBit 空間;并有對(duì)應(yīng)的 2 個(gè)“位帶別名區(qū)”,分別稱為“ SRAM 位帶別名區(qū)”和“外設(shè)存儲(chǔ)位帶別名區(qū)”,每個(gè)別名區(qū)大小為 32MBit?!拔粠А奔夹g(shù)將兩個(gè)“位帶區(qū)”的每一位分別映射帶對(duì)應(yīng)的“位

9、帶別名區(qū)”的一個(gè)“字”(即 32 位)的最低位上。這部分存儲(chǔ)空間(32M)是通過映射技術(shù)“虛擬”出來的,STM32 片內(nèi)的這部分地址空間并沒有物理存儲(chǔ)介質(zhì)存在。第五章 SPI一、時(shí)序 1)時(shí)鐘頻率(波特率)-發(fā)送或者接收一個(gè)位要多長(zhǎng)時(shí)間 我們M3最快18M SPI的輸出時(shí)鐘必須在從機(jī)的范圍內(nèi) 看時(shí)序圖里面的時(shí)鐘高低電平的最小時(shí)間 也就是找最小周期 要去有時(shí)間特性的時(shí)序圖找。 如果找時(shí)鐘頻率找不到確定-給最小 tch-200ns tcl200ns T=400ns f=1/T -2.5M 2)時(shí)鐘相位和時(shí)鐘極性 時(shí)鐘相位CPHA-上升沿/下降沿 0: 數(shù)據(jù)采樣從第一個(gè)時(shí)鐘邊沿開始;1: 數(shù)據(jù)采樣從

10、第二個(gè)時(shí)鐘邊沿開始。 通俗:就是上升沿采樣數(shù)據(jù)還是下降沿采樣數(shù)據(jù) 串口靠時(shí)間來數(shù)據(jù)。同步通信-采樣數(shù)據(jù)就是什么時(shí)候去拿數(shù)據(jù) 時(shí)鐘極性CPOL-高低電平 作用:決定第一個(gè)時(shí)鐘邊沿-空閑的時(shí)候的電平 時(shí)鐘相位CPHA 和 時(shí)鐘極性CPOL組合成多少種情況? 答:4種時(shí)序模式 1、空閑的時(shí)候時(shí)鐘極性CPOL=0 ,時(shí)鐘相位CPHA=0 上升沿采樣數(shù)據(jù) CPOL = 0 CPHA = 0 空閑的時(shí)候時(shí)鐘線SCK為低電平上升沿采樣數(shù)據(jù) 2、空閑的時(shí)候時(shí)鐘極性CPOL=0 ,時(shí)鐘相位CPHA=1 下降沿采樣數(shù)據(jù) CPOL = 0 CPHA = 1 空閑的時(shí)候時(shí)鐘線SCK為低電平下降沿采樣數(shù)據(jù) 3、空閑的時(shí)

11、候時(shí)鐘極性CPOL=1 ,時(shí)鐘相位CPHA=0 下降沿采樣數(shù)據(jù) CPOL = 1 CPHA = 0 空閑的時(shí)候時(shí)鐘線SCK為高電平下降沿采樣數(shù)據(jù)4、空閑的時(shí)候時(shí)鐘極性CPOL=1 ,時(shí)鐘相位CPHA=1 上升沿采樣數(shù)據(jù) CPOL = 1 CPHA = 0 空閑的時(shí)候時(shí)鐘線SCK為高電平上升沿采樣數(shù)據(jù)時(shí)序里面時(shí)鐘極性和相位,必須和從機(jī)的一樣一般:CPOL = 0 CPHA = 0 CPOL = 1 CPHA = 1 只有空閑狀態(tài)不同-時(shí)鐘線要求空閑的時(shí)候是低電平那就選CPOL = 0 CPHA = 0時(shí)鐘線接下拉電阻時(shí)鐘線要求空閑的時(shí)候是高電平那就選CPOL = 1 CPHA = 1時(shí)鐘線接上拉

12、電阻二、 配置SPI: 1、初始化引腳 2、選擇好SPI的時(shí)序 選擇:時(shí)鐘相位和極性 0 0 SPI_CR1 時(shí)鐘相位-0位 寫0 SPI2-CR1 &=(1AHBENR |=(1CCR |=(1CMAR=(u32)code;/外設(shè)的地址,外設(shè)的地址可以存儲(chǔ)器的地址DMA1_Channel1-CPAR=(u32)buff;/外設(shè)的地址/通道優(yōu)先級(jí):高DMA1_Channel1-CCR &=(3CCR|=(2CNDTR =sizeof(buff);/存儲(chǔ)器數(shù)據(jù)寬度:8位DMA1_Channel1-CCR &=(3CCR |=(0CCR &=(3CCR |=(0CCR |=(1CCR |=(1CCR &=(1CCR &=(1CCR &=(1CRL = GPIOA-CRL & 0XFF0FFFFFGPIOA-CRL = GPIOA-CRL | 0X00200000;GPIOA-CRL &=0XFF0FFFFF; /清零GPIOA-CRL | = 0X00200000; /設(shè)置0XFF0FFFFF = (0XF5*4); PA60X00200000

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論