




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
單片機產品設計與制作
(stm32機型)石梅香項目7、利用DAC實現LED亮度控制任務7.3程序設計與調試總目錄1項目1、利用GPIO和位帶操作實現溫度報警
2項目2、利用SysTick實現溫度報警與控制
3項目3、利用按鍵查詢實現參數設定及顯示
4項目4、利用外部中斷實現工件計數顯示
5項目5、利用定時器實現直流電動機PWM調速6項目6、利用計數器實現工件計數顯示和打包控制
7項目7、利用DAC實現LED亮度控制8項目8、利用ADC實現土壤濕度采集
項目總目標項目總目標具體工作任務利用STM32內部DAC控制LED亮度。亮度值可由按鍵設定。請進行方案設計、器件選型、電路和程序設計,并完成軟硬件調試。子目錄7項目7、利用外部中斷實現工件計數及顯示
7.1任務7.1 認識STM32單片機的DAC7.2任務7.2 方案及電路設計7.3任務7.3 程序設計7.4任務7.4 軟硬件深入(七)任務7.3程序設計與調試一、任務要求1、能根據任務需求繪制程序流程圖;2、能夠讀懂程序并根據需求變化對DAC程序進行適應性修改分組討論要利用DAC實現LED亮度控制任務,程序大致應該完成哪些工作。討論與發(fā)言程序流程設計圖7.3.1單通道、查詢法程序流程程序布局程序框架如圖7.3.2所示,可從之前的工程復制而來,注意:(1)HARDWARE文件夾中需要增加一個DAC文件夾,內有dac.c和dac.h文件。(2)修改工程名為:Test_DAC。(3)Project窗口的HALLIB下應增加stm32f1xx_dma.c、stm32f1xx_dac_ex.c、stm32f1xx_dac.c文件。(4)Project窗口的HARDWARE下應有dac.c。(5)Options中的包含路徑中應包含DAC文件夾。(1)第4行定義變量DAC_Handler,其類型為DAC_HandleTypeDef,用于DAC的各種操作。其具體內容參見表7.3.1。(2)第5行定義變量DAC_OUT_Value,用于存儲準備送到DAC數據保持寄存器DHR的數據,該數據的大小決定了DAC輸出電壓。(3)第10行調用函數DAC_Init()對DAC初始化。該函數具體內容見表7.3.1。(4)第13~20行用于測試DAC_OUT_Value送不同數值時對應的模擬電壓輸出。其中:(5)第13~17行用于向DAC_OUT_Value送不同數值。(6)第18、20行調用庫函數HAL_DAC_SetValue()向兩個DAC通道傳送待轉換數值。主程序設計與調試DAC程序設計DAC程序設計DAC操作相關庫函數1、DAC操作變量數據類型:
DAC_HandleTypeDef
typedefstruct{DAC_TypeDef*Instance;
//待配置設備名,
DAC或DAC1,注意DAC、DAC2和DAC1都用一個名字
__IO
HAL_DAC_StateTypeDefState;
//狀態(tài)
HAL_LockTypeDef
Lock;
//鎖定
DMA_HandleTypeDef*DMA_Handle1;
//通道1DMA操作變量
DMA_HandleTypeDef*DMA_Handle2;
//通道2DMA操作變量
__IO
uint32_t
ErrorCode;
//錯誤代碼……
……;
//其它}DAC_HandleTypeDef
;2、DAC賦值函數:
HAL_DAC_SetValue(&DAC操作變量,通道號,數據對齊格式,數據)原型:HAL_StatusTypeDef
HAL_DAC_SetValue(DAC_HandleTypeDef
*hdac,uint32_t
Channel,
uint32_t
Alignment,
uint32_t
Data)功能:將數據Data送到hdac和Channel指定的DAC通道,數據格式是Alignment入口參數:(1)hdac,指出是哪個DAC操作變量,其數據類型為
DAC_HandleTypeDef,結構體變量(2)Channel,指出是哪個通道,其取值為:DAC_CHANNEL_1或DAC_CHANNEL_2(3)Alignment,指出數據對齊格式,其取值為:DAC_ALIGN_12B_R(12位右對齊)、DAC_ALIGN_12B_L(12位左對齊)、DAC_ALIGN_8B_R(8位右對齊)(4)Data,待傳送數據,數據類型為
uint32_t返回值:類型為HAL_StatusTypeDef,返回結果有4種:HAL_OK=0x00;
HAL_ERROR=0x01;
HAL_BUSY=0x02;
HAL_TIMEOUT=0x033、DAC初始化函數:
HAL_DAC_Init(&DAC操作變量)函數原型:HAL_StatusTypeDef
HAL_DAC_Init
(DAC_HandleTypeDef*hdac)功能:(1)按照變量hdac的設置,初始化DAC,其數據類型為
DAC_HandleTypeDef,結構體變量(2)調用__weakvoidHAL_DAC_MspInit(DAC_HandleTypeDef
*hdac)
庫函數(3)返回操作結果入口參數:hdac,指出如何進行DAC初始化,其數據類型為
DAC_HandleTypeDef,結構體變量返回值:
同函數HAL_DAC_SetValue()DAC程序設計DAC操作相關庫函數4、DAC初始化隱性調用函數:HAL_DAC_MspInit(DAC_HandleTypeDef*hdac)原型:__weak
voidHAL_DAC_MspInit(DAC_HandleTypeDef*hdac)功能:針對DAC操作變量hdac,執(zhí)行本函數的內容說明:本函數在庫中被定義為__weak(弱)型,函數內容可根據用戶需要自定義返回值:
空5、DAC通道設置變量數據類型:DAC_ChannelConfTypeDef
typedefstruct{ uint32_t
DAC_Trigger;
//觸發(fā)方式,有以下取值:DAC_TRIGGER_NONE(不需要外部觸發(fā))、//DAC_TRIGGER_EXT_IT9(外部中斷9觸發(fā))、//DAC_TRIGGER_T2_TRGO(TIM2TRGO事件觸發(fā))、//DAC_TRIGGER_T4_TRGO(TIM4TRGO事件觸發(fā))、//DAC_TRIGGER_T5_TRGO~DAC_TRIGGER_T8_TRGO(TIM5~TIM8TRGO事件觸發(fā))uint32_t
DAC_OutputBuffer;
//DAC輸出緩沖器,有兩種取值:DAC_OUTPUTBUFFER_ENABLE(允許)、
//DAC_OUTPUTBUFFER_DISABLE(禁止)}DAC_ChannelConfTypeDef;6、DAC通道設置函數:HAL_DAC_ConfigChannel(&DAC操作變量,&DAC通道設置變量,通道號)函數原型:HAL_StatusTypeDefHAL_DAC_ConfigChannel(DAC_HandleTypeDef*hdac,DAC_ChannelConfTypeDef*sConfig,uint32_tChannel)功能:按照sConfig的設置,對hdac和Channel指定的DAC通道進行設置入口參數:hdac,指出是哪個DAC操作變量,數據類型為DAC_HandleTypeDef,結構體變量sConfig:指出如何進行通道配置,數據類型為DAC_ChannelConfTypeDef,結構體變量Channel:指出是哪個通道,取值為DAC_CHANNEL_1或DAC_CHANNEL_2返回值:
同函數HAL_DAC_SetValue()7、DAC啟動函數:HAL_DAC_Start(&DAC操作變量,通道號)函數原型:HAL_StatusTypeDefHAL_DAC_Start(DAC_HandleTypeDef*hdac,uint32_tChannel)功能:(1)給指定的DAC通道上電
(2)如果是軟件觸發(fā),則發(fā)一個觸發(fā)信號,將DHR中的數據裝入DOR入口參數:hdac,指出是哪個DAC操作變量,數據類型為DAC_HandleTypeDef,結構體變量Channel:指出是哪個通道,取值為DAC_CHANNEL_1或DAC_CHANNEL_2返回值:同函數HAL_DAC_SetValue()8、DAC停止函數:HAL_DAC_Stop(&DAC操作變量,通道號)函數原型:HAL_StatusTypeDefHAL_DAC_Stop(DAC_HandleTypeDef*hdac,uint32_tChannel)功能:給指定的DAC通道斷電,使其停止工作入口參數:hdac,指出是哪個DAC操作變量,數據類型為DAC_HandleTypeDef,結構體變量Channel:指出是哪個通道,取值為DAC_CHANNEL_1或DAC_CHANNEL_2
返回值:同函數HAL_DAC_SetValue()DAC程序設計DAC操作相關庫函數7、DAC啟動函數:HAL_DAC_Start(&DAC操作變量,通道號)函數原型:HAL_StatusTypeDefHAL_DAC_Start(DAC_HandleTypeDef*hdac,uint32_tChannel)功能:(1)給指定的DAC通道上電
(2)如果是軟件觸發(fā),則發(fā)一個觸發(fā)信號,將DHR中的數據裝入DOR入口參數:hdac,指出是哪個DAC操作變量,數據類型為DAC_HandleTypeDef,結構體變量Channel:指出是哪個通道,取值為DAC_CHANNEL_1或DAC_CHANNEL_2返回值:同函數HAL_DAC_SetValue()8、DAC停止函數:HAL_DAC_Stop(&DAC操作變量,通道號)函數原型:HAL_StatusTypeDefHAL_DAC_Stop(DAC_HandleTypeDef*hdac,uint32_tChannel)功能:給指定的DAC通道斷電,使其停止工作入口參數:hdac,指出是哪個DAC操作變量,數據類型為DAC_HandleTypeDef,結構體變量Channel:指出是哪個通道,取值為DAC_CHANNEL_1或DAC_CHANNEL_2
返回值:同函數HAL_DAC_SetValue()軟硬件調試(1)修改程序,向變量DAC_OUT_Value送0。編譯生成后下載到開發(fā)板。(2)用萬用表測量PA4和PA5引腳,應該輸出0V左右的電壓。(3)修改程序,向變量DAC_OUT_Value送1000。編譯生成后下載到開發(fā)板。(4)用萬用表測量PA4和PA5引腳,應該輸出0.8V左右的電壓。(5)修改程序,向變量DAC_OUT_Value分別送2482、3000、4095,應該在PA4和PA5上得到相應的電壓。(6)按照自己的想法給DAC_OUT_Value賦值,運行后測一下輸出電壓是否和自己計算的一樣。(7)修改程序,測試12位右對齊、12位左對齊和8位右對齊格式下的輸出。說一說它們的區(qū)別。(8)進入在線調試模式,設斷點運行,觀察在各個斷點處DHR和DOR寄存器內容的變化,體會DAC的工作過程。(9)想一想如果DAC采用軟件觸發(fā),程序該怎么編寫?試一下。軟硬件調試(1)修改程序,向變量DAC_OUT_Value送0。編譯生成后下載到開發(fā)板。(2)用萬用表測量PA4和PA5引腳,應該輸出0V左右的電壓。(3)修改程序,向變量DAC_OUT_Value送1000。編譯生成后下載到開發(fā)板。(4)用萬用表測量PA4和PA5引腳,應該輸出0.8V左右的電壓。(5)修改程序,向變量DAC_OUT_Value分別送2482、3000、4095,應該在PA4和PA5上得到相應的電壓。(6)按照自己的想法給DAC_OUT_Value賦值,運行后測一下輸出電壓是否和自己計算的一樣。(7)修改程序,測試12位右對齊、12位左對齊和8位右對齊格式下的輸出。說一說它們的區(qū)別。(8)進入在線調試模式,設斷點運行,觀察在各個斷點處DHR和DOR寄存器內容的變化,體會DAC的工作過程。(9)想一想如果DAC采用軟件觸發(fā),程序該怎么編寫?試一下。LED亮度控制程序設計與調試要求:用外部中斷0和外部中斷3接收加鍵和減鍵輸入,改變
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 住宅衛(wèi)生設施兒童友好設計考核試卷
- 網絡市場調查的隱私保護與合規(guī)性研究考核試卷
- 內陸?zhàn)B殖與水產品加工產業(yè)鏈協(xié)同效應研究考核試卷
- 火電土建工程質量監(jiān)督檢查記錄典型表式
- 書籍閱讀心得
- 法制大會活動方案
- 法律講座活動方案
- 水餃店新年活動方案
- 水果訂貨會活動方案
- 棋牌客戶活動方案
- 餐車經營食品安全應急預案
- 《體育與健康》課程標準(高職)
- 2024新版(外研版三起孫有中)三年級英語上冊單詞帶音標
- 2024至2030年中國漢白玉石雕數據監(jiān)測研究報告
- 三年級下冊混合計算題100道及答案
- DB12T 998-2020 殯葬服務機構消毒衛(wèi)生規(guī)范
- 2024-2025年小學新教材《體育與健康》培訓教師心得體會
- 2024-2025學年成都市教科院附屬學校重點中學初三下學期教學質量檢測試題英語試題含答案
- 豬肉聯營合作協(xié)議范本(2024版)
- 企業(yè)內刊策劃
- 智能化設備技術規(guī)格書范本
評論
0/150
提交評論