freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于stm32的舵機控制系統(tǒng)畢業(yè)設計論文[精選整理](編輯修改稿)

2025-01-04 11:05 本頁面
 

【文章內容簡介】 關的硬件電路,即振蕩器和時鐘電路。常用的時鐘電路設計有兩種方式,一種是內部時鐘方式,另一種是外部時鐘電路方式。 本系統(tǒng)采用了內部時鐘方式,利用 STM32 內部的振蕩器,然后在引腳 OSCIN和 OSCOUT 兩端跨接晶體,就構成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內部時鐘電路,如圖 所示。 沈陽航空航天大學北方科技學院畢業(yè)設計 (論文) 11 圖 STM32內部時鐘方 式電路 外接晶振時, C1 和 C2 值選擇為 27pF, C1, C2 對頻率有微調作用,晶體振蕩頻率為 12MHz。 在實際連接中,為了減少寄生電容,更好地保證振蕩器穩(wěn)定、可靠地工作,振蕩器和電容應盡可能安裝得與單片機芯片靠近。 沈陽航空航天大學北方科技學院畢業(yè)設計 (論文) 12 第 3章 軟件設計 STM32 固件庫簡介 STM32 的 函數庫是一個固件函數包,它由程序、數據結構和宏組成,包括了微控制器所有外設的性能特征。該函數庫還包括每一個外設的驅動描述和應用實例。通過使用本固件函數庫,無需深入掌握細節(jié),用戶也可以輕松應用每一個外設。因此,使用本固態(tài)函數庫可以大大減少用戶的程序編寫時 間,進而降低開發(fā)成本。 每個外設驅動都由一組函數組成,這組函數覆蓋了該外設所有功能。每個器件的開發(fā)都由一個通用 API (application programming interface 應用編程界面 )驅動,API 對該驅動程序的結構,函數和參數名稱都進行了標準化。 所有的驅動源代碼都符合 “Strict ANSIC”標準(項目于范例文件符合擴充ANSIC 標準)。驅動源代碼 已經 文檔化,他們同時兼容 MISRAC 2020 標準(根據需要,我們可以提供兼容矩陣)。由于整個固態(tài)函數庫按照 “Strict ANSIC”標準編寫,它不受不同開發(fā)環(huán)境的影響。僅對話啟動文件取決于開發(fā)環(huán)境。 該固態(tài)函數庫通過校驗所有庫函數的輸入值來實現實時錯誤檢測。該動態(tài)校驗提高了軟件的魯棒性。實時檢測適合于用戶應用程序的開發(fā)和調試。但這會增加了成本,可以在最終應用程序代碼中移去,以優(yōu)化代碼大小和執(zhí)行速度。 因為該固件庫是通用的,并且包括了所有外設的功能,所以應用程序代碼的大小和執(zhí)行速度可能不是最優(yōu)的。對大多數應用程序來說,用戶可以直接使用之,對于那些在代碼大小和執(zhí)行速度方面有嚴格要求的應用程序,該固件庫驅動程序可以作為如何設置外設的一份參 考資料,根據實際需求對其進行調整。 本設計即是利用 STM32 中的固件庫為基礎而編寫的,直接調用現成的外設驅動函數使得主程序變的更加簡潔,可讀性比較高。本設計中用到的固件庫函數主要有時鐘初始化相關的固件庫函數、 I/O 口初始化相關的固件庫函數和 SPI 總線接口相關的固件庫函數。 沈陽航空航天大學北方科技學院畢業(yè)設計 (論文) 13 軟件的總體設計 本設計的程序編輯完成后放在項目的主程 序中是在其中的一個時間片執(zhí)行的,也就是說主程序周期性的采集所輸入的模擬值。在本設計中由于要保證程序的連續(xù)的運行,所以要持續(xù)的對輸入量 進行采集,也就是說本設計中的各個初始化工 作完成之后程序 會死循環(huán)在通訊子程序里面,從而連續(xù)不斷的采集控制的模擬 值。 設計原程序時采用模塊化的思想,將程序劃分為幾塊,這樣做即使得程序結構清晰、增強可讀性,又使得程序在調試的時候可以 單獨對每個子程序分別調試,減少了程序調試的時間。本設計的源程序主要分為以下幾個部分:時鐘初始化子程序,GIPO 初始化子程序, 嵌套向量中斷控制器 (NVIC)初始化子程序和 A/D 轉換 子程序。軟件的總體流程圖如下圖 所示。 圖 軟件總體流程圖 開始 系統(tǒng)時鐘初始化 GIPO 初始化 NVIC 初始化 A/D 初始化( DMA 模式) PWM 信號 判斷數據 改 變 是 否 LCD 顯示 沈陽航空航天大學北方科技學院畢業(yè)設計 (論文) 14 時鐘初始化子程序 系統(tǒng)時鐘 SYSCLK 可以選擇三種類型的時鐘提供: HSE、 HIS 和 PLLCLK,其中 HSE 為外部高速時鐘,可以由外部晶振電路提供,晶振電路分別接到 SOC_IN 和SOC_OUT 即可,而 HSI 時鐘信號由內部 8MHz 的 RC 振蕩器產生,可直接作為系統(tǒng)時鐘或在 2 分頻后作為 PLL 輸入,由于外部時鐘源工作穩(wěn)定而且時鐘頻率精確,所以本設計采用外部時鐘源作為系統(tǒng)的時鐘。 STM32 的系統(tǒng)時鐘可以有內部的振蕩器提供,也可以由外部的由晶振構成是振蕩電路提供時鐘,本設計中采用外部振蕩電路為 STM32 提供穩(wěn)定的時鐘脈沖。由于 STM32 中的包含的 大部分外設是在連續(xù)的時鐘脈沖下才能正常工作,所以STM32 中存在一些分頻器和倍頻器,這些分頻器或倍頻器將系統(tǒng)時鐘進行分頻或者倍頻用來為相應的外設提供合適的時鐘信號 ,下圖 為 STM32 時鐘樹。 沈陽航空航天大學北方科技學院畢業(yè)設計 (論文) 15 圖 STM32時鐘樹 沈陽航空航天大學北方科技學院畢業(yè)設計 (論文) 16 本設計所需的 STM32 的外設包括 TIM TIM3 和 GPIOA 口,所以也要對 外設的時鐘進行設置。由 于在 APB1 和 APB2 系統(tǒng)總線 外設 上,所以要對 APB1 和 APB2總線的時鐘頻率進行設置 。 經過 APB1 與 APB2 的分頻, 將 SYSCLK 轉換成可以進行外設及 TIMX 可以接收的 系統(tǒng)時鐘。 在時鐘初始化子程序中先對系統(tǒng)時鐘的模式進行選擇,即將系統(tǒng)時鐘設置為 HSE 模式(外部時鐘模式),然后設置 AHB 時鐘等于系統(tǒng)時鐘, 且設置了低速或高速 AHB, 最后使能的時鐘 ,時鐘初始化子程序的流程圖如下圖 。 圖 時鐘初始化流程圖 I/O 口初始化子程序 開始 設置 PLL 時鐘源及倍頻系數 使能外部高速晶振 HSE 設置 AHB 時鐘 HSE 設置成功? 是 檢查指定的 RCC 標志位設置與否 選 PLL 作為系統(tǒng)的時鐘 否 否 是 沈陽航空航天大學北方科技學院畢業(yè)設計 (論文) 17 每個 GPI/O 端口有兩個 32 位配置寄存器 (GPIOx_CRL, GPIOx_CRH),兩個 32位數據寄存器 (GPIOx_IDR 和 GPIOx_ODR) ,一個 32 位置位 / 復位寄存器(GPIOx_BSRR),一個 16 位復位寄存器 (GPIOx_BRR)和一個 32 位鎖定寄存器(GPIOx_LCKR)。 每個 I/O 端口位可以自由編程,然而 I/0 端口寄存器必須按 32 位字被訪問。 GPIOx_BSRR 和 GPIOx_BRR 寄存器允許對任何 GPIO 寄存器的讀 /更改的獨立訪問;這樣,在讀和更改訪問之間產生 IRQ 時不會發(fā)生危險。當作為輸出配置時,寫到輸出數據寄存器上的值 (GPIOx_ODR)輸出到相應的 I/O 引腳??梢砸酝仆炷J交蜷_漏模式 (當輸出 0 時,只有 NMOS 被打開 )使用輸出驅動器。輸入數據寄存器 (GPIOx_IDR)在每個 APB2 時鐘周期捕捉 I/O 引腳上的數據。 本設計使用的STM32 的 TIM _Channel_1,其接口對應的是 STM32 上的 PA6 口。設計中 PA6 的通訊方式是推挽式輸出方式,設置的最高輸出速率為 50MHz。 PWM 信號子 程序 脈沖寬度調制( PWM)是一種對模擬信號電平進行數字編碼的方法。通過高分辨率計數器的使用,方波的占空比被調制用來對一個具體模擬信號的電平進行編碼。 脈沖寬度調制模式可以產生一個由 TIM3_ARR 寄存器確定頻率、由 TIM3_CCRx寄存器確定占空比的信號。在 TIM3_CCMRx 寄存器中的 OCxM 位寫入 ’110’,確定PWM 模式 1,能夠獨立地設置 OC1 輸出通道產生一路 PWM。 通過設置TIM3_CounterMode 設置其為向上計數 , 通過設置 TIM3_CCMRx 寄存器的 OC1_PE位使能相應的預裝載寄存器,最后還要設置 TIM3_CR1 寄存器的 ARPE 位使能自動重裝載的預裝載寄存器。 因為僅當發(fā)生一個更新事件的時候,預裝載寄存器才能被傳送到影子寄存器,因此在計數器開始計數之前,必須通過設置 TIM3_EGR 寄存器中的 UG 位來初始化所有的寄存器。 OCx 的極性可以通過軟件在 TIMx_CCER 寄存器中的 CCxP 位設置,它可以設置為高電平有效或低電平有效。 OCx 的輸出使能通過 (TIMx_CCER 和 TIMx_BDTR 寄存器中 )CCxE、 CCxNE、 MOE、 OSSI 和 OSSR位的組合控制。 在 PWM 模式 1 下, TIMx_CNT 和 TIMx_CCRx 始終在進行比較,依 據 計 數 器 的 計 數 方 向 以 確 定 是 否 符 合 TIMx_CCRx≤TIMx_CNT 或者TIMx_CNT≤TIMx_CCRx。 根據 TIMx_CR1 寄存器中 CMS 位的狀態(tài),定時器能夠產生邊沿對齊的 PWM 信號或中央對齊的 PWM 信號。 沈陽航空航天大學北方科技學院畢業(yè)設計 (論文) 18 A/D 轉換 初始化子程序 12 位 ADC 是一種逐次逼近型模擬數字轉換器。它有 18 個通道,可測量 16 個外部和 2 個內部信號源 , 可以把轉換分成兩組:規(guī)則的和注入的。在任意多個通道上以任意順序進行的一系列轉換構成成組轉換, 各通道的 A/D 轉換可以單次、連續(xù)、掃描或間斷模式執(zhí)行, ADC 的結果可以左對齊或右對齊方式存儲在 16 位數據寄存器中。 在開始 ADC 轉換和 14 個時鐘周期后, EOC 標志被設置, 16 位 ADC 數據寄存器包含轉換的結果。時序圖 如下圖, 圖 時序圖 在 ADC 初始化設置時,首先開啟 AHB 外設時鐘使能寄存器 DMA1 時鐘,定義轉換數據量, 設置 DMA 的通道 1 的初始化, 獨立地選擇 通道的采樣時間,在通道 1 設置看門狗,開啟 ADC1 并啟動轉換,應用連續(xù)轉換模式,使用 DMA 模式 ,接著便 開始轉換規(guī)則通道 ,完成由模擬量到數據量的轉變。 其結構圖如下, 沈陽航空航天大學北方科技學院畢業(yè)設計 (論文) 19 圖 ADC轉換 LCD 顯示 子程序 液晶顯示模塊的顯示器上的顯示點與驅動控制芯片中的顯示緩存 RAM是一一對應的;驅動控制芯片當中共有 65( 8 Page x 8 bit+1) X 132個位的顯示 RAM 區(qū)。而顯示器的顯示點陣大小為 64X128點,所以 實際上在液晶顯示模塊中有用的顯示 RAM 區(qū)為 64 X 128個位;按 byte為單位劃分,共分為 8個 Page,每個 Page為 8行,而每一行為 128個位(即 128列)。驅動控制芯片的顯示 RAM區(qū)每個 byte的數據對應屏上的點的排列方式為:縱向排列,低位在上高位在下 。如要點亮 LCD屏上的某一個點時,實際上就是對該點所對應的顯示 RAM區(qū)中的某一個位進行置 1操作;所以就要確定該點所處的行地址、列地址。從圖中可以看出, MzL0212864液晶顯示模組的行地址實際上就是 Page的信息,每一個 Page應有 8行;而列地址則 表示該點的橫坐標,在屏上為從左到右排列, Page中的一個 Byte對應的是一列( 8行,即 8個點),達 128列 , 根據這樣的關系在程序中控制 LCD顯示屏的顯示。 開始 開啟 AHB 寄 存器 設置看門狗 設置轉換模式 開啟轉換通道 開始轉換 沈陽航空航天大學北方科技學院畢業(yè)設
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1