單片機產品設計與調試-基于STM32F1xx機型和HAL庫函數 課件 項目1 利用GPIO和位操作實現溫度報警_第1頁
單片機產品設計與調試-基于STM32F1xx機型和HAL庫函數 課件 項目1 利用GPIO和位操作實現溫度報警_第2頁
單片機產品設計與調試-基于STM32F1xx機型和HAL庫函數 課件 項目1 利用GPIO和位操作實現溫度報警_第3頁
單片機產品設計與調試-基于STM32F1xx機型和HAL庫函數 課件 項目1 利用GPIO和位操作實現溫度報警_第4頁
單片機產品設計與調試-基于STM32F1xx機型和HAL庫函數 課件 項目1 利用GPIO和位操作實現溫度報警_第5頁
已閱讀5頁,還剩254頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

單片機產品設計與制作

(stm32機型)項目1、利用GPIO和位帶操作實現溫度報警任務1.1認識STM32單片機及其開發工具總目錄1項目1、利用GPIO和位帶操作實現溫度報警

2項目2、利用SysTick實現溫度報警與控制

3項目3、利用按鍵查詢實現參數設定及顯示

4項目4、利用外部中斷實現工件計數顯示

5項目5、利用定時器實現直流電動機PWM調速6項目6、利用計數器實現工件計數顯示和打包控制

7項目7、利用ADC實現土壤濕度采集

具體工作任務設計基于STM32單片機的溫度報警器,實現如下功能:

溫度超過設定溫度(30℃)時,報警燈點亮;否則,報警燈熄滅。請進行1、方案設計2、器件選型3、電路和程序設計4、完成軟硬件調試。項目總目標1、了解單片機的發展及用途,理解其關鍵概念與術語;2、了解單片機產品的開發過程,會使用開發工具進行軟硬件設計與調試;3、理解基于STM32F103ZET6的電源電路原理,能夠獨立進行電源電路的設計與調試;4、理解按鍵、溫度開關等簡單DI電路的原理,能夠獨立進行類似電路的設計與調試;5、理解LED等簡單DO電路的原理,能夠獨立進行類似電路的設計與調試;6、掌握基于HAL庫函數的GPIO引腳讀寫和位操作編程方法;7、能夠按照分組管理的模塊化設計方法進行程序設計與調試;8、了解STM32GPIO電路的內部結構;9、會查找相關資料、閱讀相關文獻。子目錄1項目1、利用GPIO和位帶操作實現溫度報警

1.1任務1.1 認識STM32單片機及其開發工具1.2任務1.2 方案設計

1.3任務1.3 電路設計

1.4任務1.4 程序設計

1.5任務1.5 利用位帶操作實現溫度報警

1.6任務1.6 stm32軟硬件深入(一)

任務1.1認識STM32單片機及其開發工具本任務目標1、認識STM32單片機開發工具,能在其上找到STM32芯片和主要外設;2、能利用開發工具進行程序下載與功能測試;3、能說出單片機的定義與作用;4、能指出3種以上常見單片機產品和生產廠家;5、能說出STM32單片機的生產廠家、主要系列產品和主要性能指標;6、能說出學習單片機的目的;7、能自主查閱資料,閱讀文獻和發起討論。認識STM32單片機開發板正面認識STM32單片機開發板正面——拿掉液晶屏STM32單片機開發環境仿真器硬件開發平臺——仿真器仿真器接口計算機USB口仿真器作用:1.下載程序2.調試程序3.供電STM32單片機開發環境軟件開發環境——Keil公司MDK—ARMIAR公司EWARM單片機的編程語言C語言STM32匯編語言STM32機器語言代碼解釋代碼解釋十六進制二進制u8AAA;……AAA=5;……AAA=6;定義變量AAA……給AAA送5……給AAA送6MOVSr4,#0x05……MOVSr4,#0x06給寄存器r4送5……給寄存器r4送62405……24060010010000000101……0010010000000110單片機的編程語言C語言匯編語言機器語言用語句表示,例如用賦值語句:AAA=5;用指令助記符表示,例如MOVSr4,#0x05用二進制的機器指令表示,例如0010010000000101需要轉換(編譯)成機器碼才可以被執行需要轉換(匯編)成機器碼才可以被執行是唯一能被CPU識別和執行的語言類似于自然語言,三種語言中最容易理解記憶直接針對硬件,比機器語言更易于理解和記憶直接針對硬件,不容易理解和記憶一條C語句,常對應若干條機器指令一條匯編指令對應一條機器指令一條機器指令常對應一組CPU內部功能電路功能強、編程容易編程難度大于C語言很少直接用機器語言編程C程序生成的機器碼不如匯編程序精簡生成的機器碼占內存更少,速度更快我就是它們最終要生成的機器碼硬件兼容性較好CPU不同,指令助記符不同(不兼容)CPU不同,機器語言不同(不兼容)其他調試工具工具、儀器設備——讓實驗板和計算機通信1、連接實驗板、仿真器和計算機,檢查電源指示燈應點亮仿真器實驗板計算機復制文件建立項目2、在電腦的F盤新建1個文件夾,專門存放本課程程序,文件夾名字自定義,例如電氣13、從多媒體網絡接收老師的測試程序:“01.按鍵點燈-測試”,將其存入剛才建立的文件夾4、解壓縮“01.按鍵點燈-測試”

到當前文件夾5、打開文件夾:“01.按鍵點燈-測試”,在根目錄找到文件”Push_Light“

6、雙擊該文件,打開keil5

keil界面7、進入keil5,左側為”Project”窗口,右側為程序編輯窗口。上面是文件欄和工具欄

編譯程序8、點擊“Rebuild”(再生成)按鈕,對程序進行編譯生成操作

調試器設置9、單擊“options”(選項)按鈕,準備進行調試器設置

調試器設置10、進“Debug”(調試)頁,選擇:Use:CMSIS-DAPDebugger,點擊:Settings。

調試器設置11、選擇PZCMSIS-DAP適配器,找到:適配器的IDCODE。注意不同的調試器,IDCODE不同,只要有編號,就說明設備被識別,否則需要檢查設備連接并重新上電。

12、設置中的Reset:SYSRESETREQ。調試器設置13、進入“FlashDownload(閃存下載)”頁,勾選:ResetandRun(復位并運行),點擊:OK,OK,退出Options設置。

下載程序14、點擊:“Download(下載)”按鈕,程序被下載到實驗板上的單片機中

運行程序1、按住K_UP按鈕,觀察:

LED模塊的D1被點亮數碼管的”a”段被點亮2、松開K_UP按鈕,觀察:

LED模塊的D1熄滅數碼管的”a”段熄滅3、如果一切正常,說明實驗板能正常通信和工作關于單片機-什么是單片機?——單片機是一個集成電路芯片關于單片機-什么是單片機?——單片機是一個計算機,可以按照程序運行關于單片機-什么是單片機?——單片機芯片內部由CPU(CentralProcessingUnit)、存儲器(memory)、輸入/輸出接口即I/O接口(Input/OutputInterface)等部分組成關于單片機-什么是單片機?——單片機芯片與各種外設結合,即可構成不同的單片機產品,并在程序控制下,實現各種功能。關于單片機-什么是單片機?——單片機是將CPU、存儲器、I/O接口等部件集成在一起的一個芯片,因此被稱為單片微型計算機即SingleChipMicrocomputer,簡稱單片機即SCM。關于單片機-什么是單片機?——單片機與PC機的異同與通用計算機(PC機)的異同?單片機與通用計算機(PC機)單片機與通用計算機(PC機)的相同之處——都由CPU、存儲器、I/O接口和外設組成通用計算機的CPU(中央處理器)是一個獨立的芯片,在機箱的主板上,是計算機的核心CPU單片機的CPU、存儲器、I/O接口等集成在一個芯片里。單片機與通用計算機(PC機)通用計算機的內存儲器由一組芯片組成,稱為內存條,在機箱里,用來存放運行程序和數據內存條單片機的CPU、存儲器、I/O接口等集成在一個芯片里。單片機與通用計算機(PC機)通用計算機的外設包括顯示器、鍵盤、鼠標、音箱、麥克、硬盤等,置于機箱外,用來向CPU輸入輸出數據。常常是標準外設。接口電路(顯卡、鍵盤接口等)也是標準的。外設單片機的外設,包括按鍵、各種傳感器、LED、蜂鳴器、LCD、數碼管、電動機等。外設的形式更加多樣。單片機與通用計算機(PC機)通用計算機的外形比較統一。單片機產品的外形不固定,常嵌入到設備中,與設備一體。單片機與通用計算機(PC機)單片機有什么用?——單片機可與不同外設結合,構成各種裝置單片機顯示器按鍵智能壓力檢測儀(單片機+壓力傳感器+顯示器等)智能壓力變送器(單片機+壓力傳感器+顯示器等)單片機有什么用?——單片機可與不同外設結合,構成各種裝置無紙記錄儀智能數顯表單片機有什么用?——單片機可與不同外設結合,構成各種裝置單片機有什么用?——單片機可與不同外設結合,構成各種裝置空調控制主板溫度控制器單片機有什么用?——單片機可與不同外設結合,構成各種裝置智能玩具汽車電子系統單片機有什么用?——單片機可與不同外設結合,構成各種裝置單片機有什么用?——單片機可用于許多領域家用電器航空航天醫療儀器通訊網絡汽車電子辦公自動化儀器儀表工業自動化單片機單片機的發展1976~1978:SCM(SingleChipMicrocomputer)初始階段。代表產品為Intel公司生產的MCS-48。1978~1982:SCM的完善階段。代表產品為Intel公司生產的MCS-51。對單片機產品的貢獻極大。現在許多單片機都與之兼容。1982~1990:從SCM向MCU發展的階段。也是8位單片機的鞏固發展及16位單片機的推出階段。代表產品是80C51單片機及以其為內核的其它多種單片機。1990~:

全面發展階段。向上,出現了32位字長,速度更快的、強數據處理能力的單片機如ARM系列單片機和DSP(數字信號處理器)等產品。向下,在工控領域,8位機速度和功能都得以提高。典型產品是SiliconLabs生產的C8051F系列單片機單片機的生產廠家及系列產品2.Motorola:8位機:68HC05和升級產品68HC08、68HC11、68HC12

16位機:68HC16、32位機:683XX3.Microchip:PIC單片機1.Intel:8051/8031系列4.Zilog:Z8、Z865.Atmel:8位機:AT89:51兼容單片機

16位機:AT90(AVR)6.TI:MSP430,16位7.NS:美國國家半導體公司:COP8

8.宏晶:STC系列51兼容單片機9.Sililabs:C8051F系列10.ST:意法半導體stm32STM32單片機ST:意法半導體公司M:Micro32:32bitSTM32與ARM的關系ARM是英國的芯片設計公司其最成功的莫過于32位嵌入式CPU核----ARM系列最常用的是ARM7和ARM9ARM公司主要提供IP核,具有知識產權的核(Intellectual

Property

core)IP核是CPU最核心的部分,并不是完整的處理器。ARM把這個IP核賣給各大半導體公司,如

Philips

三星,ATMEL,甚至Intel等。各大公司在ARM的CPU核基礎上添加上一些需要的外設,封裝起來形成自己的處理器。STM32就是ST公司將ARM公司的Cortex-M作為內核,與一些外設組合封裝在一起的32位嵌入式處理器。STM32Cortex-M

ARMv7架構定義了三大分工明確的系列:“A”系列:面向尖端的基于虛擬內存的操作系統和用戶應用“R”系列:針對實時系統“M”系列:針對微控制器Cortex-A5/A8采用ARMv7-A架構Cortex-M0采用ARMv6-M架構Cortex-M3采用ARMv7-M架構Cortex-M4采用ARMv7-ME架構Cortex-M是ARM公司推出的一款IP核STM8和STM32單片機STM32單片機的命名規則我們的stm32我們開發板使用的是STM32F103ZET6芯片(1)內核:32位高性能ARMCortex-M3處理器。時鐘:高達72M,實際還可以超頻一點。(2)144引腳112個IO,大部分IO口都耐5V(模擬通道除外),支持調試:SWD和JTAG,SWD只要2根數據線(3)存儲器容量:512KFLASH,64KSRAM總結CPU存儲器I/O接口單片機是一種微型計算機(MicroComputer)包括CPU、存儲器、I/O接口等電路但是它很小,能將CPU、存儲器、I/O接口等集成在一個小小的芯片(Chip)中。CPU存儲器I/O接口CPU存儲器I/O接口單片機芯片SingleChipMicrocomputer最簡單的單片機系統只需要將單片機芯片與電源以及輸入輸出設備(例如按鍵、傳感器、數碼管、繼電器等)進行適當連接。CPU存儲器I/O接口電源單片機芯片VCCGND按鍵發光二極管再將預先編好的程序存入存儲器CPU存儲器I/O接口電源單片機芯片VCCGND程序就可以實現一定的功能例如按下按鍵,LED點亮再將預先編好的程序存入存儲器就可以實現一定的功能例如讓數碼管顯示需要的字符或數字各種連接好的單片機為核心的電路板

總結:1)單片機是一個集成電路芯片。3)單片機是一個將CPU、存儲器、I/O接口集成在一個芯片里的計算機。(故稱單片機——SCM:SingleChipMicrocomputer)2)單片機是一個計算機(智能芯片、可編程芯片)。6)單片機體積小、價格低廉。5)單片機產品沒有固定的外型,通常嵌入設備中,故稱嵌入式計算機。(EmbeddedComputer)4)單片機是主要用于測量與控制(故稱微控制器——MCU:MicroControlUnit)。CPU存儲器I/O接口怎么學單片機認真聽課,記好筆記,課下復習動手實踐,在干中學

電路不是圖畫,不是供欣賞的,是要你實現的。程序可以在紙上編制,但必須在計算機上調試。項目總目標1、了解單片機的發展及用途,理解其關鍵概念與術語;2、了解單片機產品的開發過程,會使用開發工具進行軟硬件設計與調試;3、理解基于STM32F103ZET6的電源電路原理,能夠獨立進行電源電路的設計與調試;4、理解按鍵、溫度開關等簡單DI電路的原理,能夠獨立進行類似電路的設計與調試;5、理解LED等簡單DO電路的原理,能夠獨立進行類似電路的設計與調試;6、掌握基于HAL庫函數的GPIO引腳讀寫和位操作編程方法;7、能夠按照分組管理的模塊化設計方法進行程序設計與調試;8、了解STM32GPIO電路的內部結構;9、會查找相關資料、閱讀相關文獻。任務1.1認識STM32單片機及其開發工具本任務目標1、認識STM32單片機開發工具,能在其上找到STM32芯片和主要外設;2、能利用開發工具進行程序下載與功能測試;3、能說出單片機的定義與作用;4、能指出3種以上常見單片機產品和生產廠家;5、能說出STM32單片機的生產廠家、主要系列產品和主要性能指標;6、能說出學習單片機的目的;7、能自主查閱資料,閱讀文獻和發起討論。單片機產品設計與制作

(stm32機型)袁秀英石梅香項目1、利用GPIO和位帶操作實現溫度報警任務1.2方案設計總目錄1項目1、利用GPIO和位帶操作實現溫度報警

2項目2、利用SysTick實現溫度報警與控制

3項目3、利用按鍵查詢實現參數設定及顯示

4項目4、利用外部中斷實現工件計數顯示

5項目5、利用定時器實現直流電動機PWM調速6項目6、利用計數器實現工件計數顯示和打包控制

7項目7、利用ADC實現土壤濕度采集

具體工作任務設計基于STM32單片機的溫度報警器,實現如下功能:

溫度超過設定溫度(30℃)時,報警燈點亮;否則,報警燈熄滅。請進行1、方案設計2、器件選型3、電路和程序設計4、完成軟硬件調試。項目總目標1、了解單片機的發展及用途,理解其關鍵概念與術語;2、了解單片機產品的開發過程,會使用開發工具進行軟硬件設計與調試;3、理解基于STM32F103ZET6的電源電路原理,能夠獨立進行電源電路的設計與調試;4、理解按鍵、溫度開關等簡單DI電路的原理,能夠獨立進行類似電路的設計與調試;5、理解LED等簡單DO電路的原理,能夠獨立進行類似電路的設計與調試;6、掌握基于HAL庫函數的GPIO引腳讀寫和位操作編程方法;7、能夠按照分組管理的模塊化設計方法進行程序設計與調試;8、了解STM32GPIO電路的內部結構;9、會查找相關資料、閱讀相關文獻。子目錄1項目1、利用GPIO和位帶操作實現溫度報警

1.1任務1.1 認識STM32單片機及其開發工具1.2任務1.2 方案設計

1.3任務1.3 電路設計

1.4任務1.4 程序設計

1.5任務1.5 利用位帶操作實現溫度報警

1.6任務1.6 stm32軟硬件深入(一)

任務1.2方案設計及器件選型本任務目標1、能夠查閱相關技術資料,結合電路、電子、傳感器

等基礎知識進行系統方案設計和器件選型;2、能夠針對設計任務進行研討和表達。討論與發言如何用單片機制作一個溫度報警器設計任務回顧要求:溫度低于30℃時,報警燈熄滅,否則點亮。溫度低于30℃溫度高于30℃方案設計那么如何實現呢?請大家討論一下!方案設計需要什么?1個溫度傳感器檢測溫度1個燈比如發光二極管進行報警1個電路將傳感器和報警燈連接起來接收傳感器輸入對輸入信號進行處理控制LED輸出系統方框圖溫度(t℃)溫度傳感器控制電路報警燈器件選型溫度(t℃)溫度傳感器控制電路報警燈器件選型溫度(t℃)溫度傳感器控制電路報警燈溫度傳感器開關量輸出的溫度傳感器模擬量輸出的溫度傳感器例如電接點水銀溫度計溫度超過設定值,開關閉合;否則斷開例如熱電阻溫度計溫度越大,電阻值越大TemperatureswitchTemperatureSensor電接點水銀溫度計短電極插到設定溫度處長電極插到最低處導線將信號遠傳到控制電路電接點水銀溫度計溫度低于設定值時:兩根電極之間什么也沒有斷開溫度高于設定值時:兩根電極之間有水銀(水銀是導電的)導通器件選型溫度(t℃)溫度傳感器控制電路報警燈報警燈燈泡型LED型正向導通,發光否則,不發光器件選型溫度(t℃)溫度傳感器控制電路報警燈控制電路電源有單片機的控制電路STM32F103ZET6沒有單片機的控制電路任務1.2方案設計及器件選型本任務目標1、能夠查閱相關技術資料,結合電路、電子、傳感器

等基礎知識進行系統方案設計和器件選型;2、能夠針對設計任務進行研討和表達。單片機產品設計與制作

(stm32機型)袁秀英石梅香項目1、利用GPIO和位帶操作實現溫度報警任務1.3電路設計與調試總目錄1項目1、利用GPIO和位帶操作實現溫度報警

2項目2、利用SysTick實現溫度報警與控制

3項目3、利用按鍵查詢實現參數設定及顯示

4項目4、利用外部中斷實現工件計數顯示

5項目5、利用定時器實現直流電動機PWM調速6項目6、利用計數器實現工件計數顯示和打包控制

7項目7、利用ADC實現土壤濕度采集

具體工作任務設計基于STM32單片機的溫度報警器,實現如下功能:

溫度超過設定溫度(30℃)時,報警燈點亮;否則,報警燈熄滅。請進行1、方案設計2、器件選型3、電路和程序設計4、完成軟硬件調試。項目總目標1、了解單片機的發展及用途,理解其關鍵概念與術語;2、了解單片機產品的開發過程,會使用開發工具進行軟硬件設計與調試;3、理解基于STM32F103ZET6的電源電路原理,能夠獨立進行電源電路的設計與調試;4、理解按鍵、溫度開關等簡單DI電路的原理,能夠獨立進行類似電路的設計與調試;5、理解LED等簡單DO電路的原理,能夠獨立進行類似電路的設計與調試;6、掌握基于HAL庫函數的GPIO引腳讀寫和位操作編程方法;7、能夠按照分組管理的模塊化設計方法進行程序設計與調試;8、了解STM32GPIO電路的內部結構;9、會查找相關資料、閱讀相關文獻。子目錄1項目1、利用GPIO和位帶操作實現溫度報警

1.1任務1.1 認識STM32單片機及其開發工具1.2任務1.2 方案設計

1.3任務1.3 電路設計

1.4任務1.4 程序設計

1.5任務1.5 利用位帶操作實現溫度報警

1.6任務1.6 stm32軟硬件深入(一)

任務1.3電路設計與調試本任務目標1、能查閱相關資料,說出STM32單片機的電源引腳和GPIO引腳的作用;2、能畫出溫度開關與單片機的連接電路,說出其原理;3、能畫出LED與單片機的連接電路,說出原理;4、能舉一反三,獨立進行類似控制的電路設計;5、會進行電路測試。任務1.3電路設計與調試本任務目標1、能查閱相關資料,說出STM32單片機的電源引腳和GPIO引腳的作用;2、能畫出溫度開關與單片機的連接電路,說出其原理;3、能畫出LED與單片機的連接電路,說出原理;4、能舉一反三,獨立進行類似控制的電路設計;5、會進行電路測試。沒有單片機的溫度報警器電路設計溫度(t℃)溫度傳感器控制電路報警燈溫度傳感器TemperatureSensor發光二極管LEDLightEmittingDiodeθ電源PowerSupply串聯電路限流電阻沒有單片機的溫度報警器電路設計溫度(t℃)溫度傳感器控制電路報警燈有單片機的溫度報警器溫度(t℃)溫度傳感器控制電路報警燈stm32單片機有單片機的溫度報警電路stm32單片機有單片機的溫度報警電路供電電路輸入電路輸出電路晶振電路復位電路其他電路供電電路STM32F103ZET6的供電引腳VDD和VSS為片內數字電路供電分VDD1和VSS1、VDD2和VSS2……VDD11和VSS11供電電壓2.0~3.6V,典型值3.3VVDDA和VSSA為片內模擬電路供電可外接獨立電源,也可和VDD和VSS共用一組電源供電電壓2.4~VDD(3.6V)VREF+和VREF-為片內AD提供精準基準電壓可外接獨立電源,也可和VDDA和VSSA共用一組電源VBAT為片內RTC提供備用電源可外接電池或其他電源也可和VDD共用一組電源供電電路STM32F103ZET6的供電引腳供電電路使用了四組電源的供電電路——畫法1供電電路使用了四組電源的供電電路——畫法1供電電路使用了四組電源的供電電路——畫法2供電電路使用了四組電源的供電電路——畫法2供電電路使用了一組電源的供電電路——畫法1供電電路使用了一組電源的供電電路——畫法2供電電路使用了兩組電源的供電電路(開發板接法)供電電路開發板供圖供電電路--電源電路測試3.3VGNDGND5V自主設計供電電路參考以上電源電路:(1)請設計使用兩組電源的電源電路,要求一組為數字電源、模擬電源、基準電源供電,另一組是備用電池。(2)請設計使用三組電源的電源電路,要求一組為數字電源和模擬電源供電、一組為基準電源供電,另一組是備用電池。有單片機的溫度報警電路stm32單片機有單片機的溫度報警電路供電電路輸入電路輸出電路晶振電路復位電路其他電路輸入電路輸入輸出引腳PA0~PA15PB0~PB15PC0~PC15PD0~PD15PE0~PE15PF0~PF15PG0~PG15通用輸入/輸出引腳GPIOGeneral-PurposeInput/Output每一根引腳即可做輸入也可做輸出做DI輸入時,接收傳感器等輸入外設設備輸入的高、低電平信號做DO輸出時,向LED等輸出設備發送高、低電平信號

輸入電路輸入輸出引腳PA0~PA15PB0~PB15PC0~PC15PD0~PD15PE0~PE15PF0~PF15PG0~PG15PA0~PA15PB0~PB15PC0~PC15PD0~PD15VDD1~VDD11VSS1~VSS11VDDAVSSAVREF+VREF-VBATPE0~PE15PF0~PF15PG0~PG15OSC_INOSC_OUTNRSTBOOT0STM32F103ZET6輸入電路144引腳GPIO引腳(PA0~PG15,112個)電源引腳(VDD1~VBAT,27個)復位引腳(NRST,1個)晶振引腳(OSCIN和OSCOUT,2個)啟動引腳(BOOT0,1個)其它引腳(空引腳1個)輸入電路3.3Vθ1K上拉電阻t>=設定值:開關閉合PA0經1K電阻上拉到3.3V即PA0輸入高電平t<設定值:開關斷開PA0外部懸空PA0STM32F103ZET6輸入電路測試斷電時,按下K_UP按鍵開關:通()斷()通電時,按下K_UP按鍵PA0電壓=斷電時,抬起K_UP按鍵開關:通()斷()通電時,抬起K_UP按鍵PA0電壓=測試結果自主設計參考以上電路:請設計使用PE2和PF5接收2個按鍵輸入的電路。有單片機的溫度報警電路stm32單片機有單片機的溫度報警電路供電電路輸入電路輸出電路晶振電路復位電路其他電路STM32F103ZET6PA0輸出電路3.3Vθ1K上拉電阻t>=設定值:開關閉合PA0經1K電阻上拉到3.3V即PA0輸入高電平t<設定值:開關斷開PA0內部下拉到VSS即PA0輸入低電平PC03.3V470限流電阻PC0輸出低電平:LED點亮PC0輸出高電平:LED熄滅輸出電路測試輸出電路測試結果PC0接3.3VLED:亮()滅()PC0接GNDLED:亮()滅()自主設計參考以上電路:請設計使用PE2和PF5控制2個LED的輸出電路。電源、輸入和輸出電路匯總有單片機的溫度報警電路stm32單片機有單片機的溫度報警電路供電電路輸入電路輸出電路晶振電路復位電路其他電路暫不設計輸入電路的其它接法stm32與開關量輸入設備的連接電路開關量需要轉換成高低電平的數字量送入STM32F103ZET6PA03.3V1K上拉電阻開關閉合PA0外部輸入高電平開關斷開PA0外部輸入懸空開關閉合PA0外部輸入低電平開關斷開PA0外部輸入懸空STM32F103ZET6PA0開關閉合PA0外部輸入低電平開關斷開PA0外部輸入高電平STM32F103ZET6PA03.3V1K上拉電阻實驗板按鍵電路設計PA0PE2PE3PE4STM32F103ZET6輸入電路的其它接法stm32與數字量輸入設備的連接電路數字量輸入直接送入,注意共地STM32F103ZET6PG11輸出電路的其它接法stm32與LED的連接電路STM32F103ZET6PA03.3V200限流電阻PA0輸出低電平LED點亮PA0輸出高電平LED熄滅PA0輸出高電平LED點亮PA0輸出低電平LED熄滅STM32F103ZET6PA0200限流電阻STM32F103ZET6實驗板LED電路設計PC0PC1PC2PC3PC4PC5PC6PC7實驗板的供電電路設計實驗板的供電電路設計請根據老師要求,現場進行電源、輸入、輸出電路設計任務1.3電路設計與調試本任務目標1、能查閱相關資料,說出STM32單片機的電源引腳和GPIO引腳的作用;2、能畫出溫度開關與單片機的連接電路,說出其原理;3、能畫出LED與單片機的連接電路,說出原理;4、能舉一反三,獨立進行類似控制的電路設計;5、會進行電路測試。項目總目標1、了解單片機的發展及用途,理解其關鍵概念與術語;2、了解單片機產品的開發過程,會使用開發工具進行軟硬件設計與調試;3、理解基于STM32F103ZET6的電源電路原理,能夠獨立進行電源電路的設計與調試;4、理解按鍵、溫度開關等簡單DI電路的原理,能夠獨立進行類似電路的設計與調試;5、理解LED等簡單DO電路的原理,能夠獨立進行類似電路的設計與調試;6、掌握基于HAL庫函數的GPIO引腳讀寫和位操作編程方法;7、能夠按照分組管理的模塊化設計方法進行程序設計與調試;8、了解STM32GPIO電路的內部結構;9、會查找相關資料、閱讀相關文獻。單片機產品設計與制作

(stm32機型)袁秀英石梅香項目1、利用GPIO和位帶操作實現溫度報警任務1.4程序設計與調試總目錄1項目1、利用GPIO和位帶操作實現溫度報警

2項目2、利用SysTick實現溫度報警與控制

3項目3、利用按鍵查詢實現參數設定及顯示

4項目4、利用外部中斷實現工件計數顯示

5項目5、利用定時器實現直流電動機PWM調速6項目6、利用計數器實現工件計數顯示和打包控制

7項目7、利用ADC實現土壤濕度采集

具體工作任務設計基于STM32單片機的溫度報警器,實現如下功能:

溫度超過設定溫度(30℃)時,報警燈點亮;否則,報警燈熄滅。請進行1、方案設計2、器件選型3、電路和程序設計4、完成軟硬件調試。項目總目標1、了解單片機的發展及用途,理解其關鍵概念與術語;2、了解單片機產品的開發過程,會使用開發工具進行軟硬件設計與調試;3、理解基于STM32F103ZET6的電源電路原理,能夠獨立進行電源電路的設計與調試;4、理解按鍵、溫度開關等簡單DI電路的原理,能夠獨立進行類似電路的設計與調試;5、理解LED等簡單DO電路的原理,能夠獨立進行類似電路的設計與調試;6、掌握基于HAL庫函數的GPIO引腳讀寫和位操作編程方法;7、能夠按照分組管理的模塊化設計方法進行程序設計與調試;8、了解STM32GPIO電路的內部結構;9、會查找相關資料、閱讀相關文獻。子目錄1項目1、利用GPIO和位帶操作實現溫度報警

1.1任務1.1 認識STM32單片機及其開發工具1.2任務1.2 方案設計

1.3任務1.3 電路設計

1.4任務1.4 程序設計

1.5任務1.5 利用位帶操作實現溫度報警

1.6任務1.6 stm32軟硬件深入(一)

任務1.4程序設計與調試本任務目標1、能根據任務需求繪制系統流程圖;2、能根據需要確定輸入輸出引腳的工作模式;3、會編寫GPIO引腳初始化函數;4、會利用GPIO讀引腳庫函數采集引腳輸入;5、會利用GPIO寫引腳庫函數向引腳輸出信號;6、會利用示例框架和開發板,在Keil5中進行程序的編輯、編譯、生成、下載和調試;7、能舉一反三獨立進行類似應用的程序設計。課程回顧-基于STM32的溫度報警器電路程序設計思路——流程圖安裝KEIL5搭建框架(1)在電腦適當位置新建一個文件夾如“電氣1”(如已有,則打開)。(2)將老師給的“01-01-程序框架-簡易框架-庫函數法”文件夾復制粘貼進來。(3)再粘貼一次,并修改副本文件夾名為:01-02-溫度報警器-GPIO讀寫。這樣你的文件夾里至少包含了“01-01-程序框架-簡易框架-庫函數法”和“01-02-溫度報警器-GPIO讀寫”兩個文件夾。(4)打開文件夾:01-02-溫度報警器-GPIO讀寫,修改工程文件“Template”為“Temperature_Alarm”。當然不修改就用原來的名字也沒有問題。修改工程名的目的是使其功能看起來一目了然。(5)注意:1)工程文件的文件類型是:μVision5Project;2)內部子文件夾和文件名(例如CORE等)不要用中文。搭建框架(1)雙擊工程文件:Temperature_Alarm,打開Keil5。(2)點擊左側Project窗口中的+或-,展開或者折疊目錄,觀察工程的結構。(3)在Project(工程)窗口,找到main.c,雙擊,打開該文件。main.c是主程序文件。主函數部分主程序一般應包括聲明、子函數、主函數三個部分。聲明部分子函數部分主函數的一般結構認識intmain() //必須有的函數,名字和返回類型不能變,是首先要運行的函數{}while(1)

//無條件循環部分,反復要做的事務{……;

}……;

//初始化部分,循環前要做的事務聲明部分子函數部分主函數部分主函數的一般結構認識intmain() //主函數最重要的函數,名字和返回類型只能如此{}while(1)

//無條件循環部分,反復要做的事務{

}

//初始化部分,循環前要做的事務voidAAA(

)//子函數AAA{……;}HAL_Init(

);//調用庫函數HAL_Init()#include"stm32f1xx.h";//包含stm321xx.h庫文件……;AAA(

);//調用子函數AAA……;

主函數的一般結構認識主程序一般應包括聲明、子函數、主函數三個部分。例如:voidGPIOA_Init() //子函數GPIOA_Init(),名字和返回類型可根據需要自定{

//子函數內容,根據需要自定}voidGPIOC_Init()

//子函數GPIOC_Init(),名字和返回類型可根據需要自定{

//子函數內容,根據需要自定}intmain()

//主函數,最重要的函數,名字和返回類型只能如此{

//初始化部分HAL_Init(

); //調用庫函數HAL_Init()GPIOA_Init();

//調用子函數GPIOA_Init()GPIOC_Init();

//調用子函數GPIOC_Init()

while(1)

//循環部分,根據需要自定

{ }}#include“stm32f1xx.h” //聲明部分,聲明包含stm32f1xx.h頭文件本系統主函數的設計intmain(){

GPIO_PinStatetemperature; //定義變量temperature,用于存溫度信號,數據類型為GPIO_PinState

HAL_Init(); //初始化HAL

GPIOA_Init(); //對GPIOA的PA0引腳初始化

GPIOC_Init(); //對GPIOC的PC0引腳初始

while(1)

{

temperature=HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0);

//讀取PA0引腳輸入給temperature

if(temperature==1)

HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_RESET);//若溫度超限,則向PC0寫0,點亮LED

else

HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_SET);

//否則,向PC0寫1,熄滅LED

}}函數分析1、主函數main(),自己寫內容,名字main和返回值類型int固定,包括初始化和無條件循環兩部分2、初始化部分主要進行PA0和PC0引腳初始化;

循環部分主要用于溫度采集、判斷和LED控制3、PA0和PC0引腳初始化用兩個子函數GPIOA_Init()和GPIOC_Init()完成,

子函數名、內容、傳遞參數、返回值,根據需要自定4、用到了3個HAL庫函數:HAL_Init()、

HAL_GPIO_ReadPin()、

HAL_GPIO_WritePin()

庫函數名稱、功能、參數、返回值都是廠家提供的,不能用錯。5、定義了變量temperature,其名字可自定義,但類型受到函數HAL_GPIO_ReadPin()限制HAL初始化庫函數解析HAL庫函數:HAL_Init()函數原型:HAL_StatusTypeDef

HAL_Init(

HAL_OK=0;HAL_ERROR=1;HAL_BUSY=2;HAL_TIMEOUT=3↑函數名↑參數↑返回值類型

功能:按照HAL固件庫的要求,進行系統外設的初始化,并根據操作情況返回結果返回值:數據類型:HAL_StatusTypeDef,該類型在庫中已被定義。取值有4個:英語小貼士:初始化

(Initialize,簡寫Init)

狀態(Status)

類型(Type)

定義(Define)

要求:必須寫在程序開頭(主函數的第一條語句)GPIO讀引腳庫函數解析HAL庫函數:HAL_GPIO_ReadPin(端口名,引腳號)示例:AAA=HAL_GPIO_ReadPin(GPIOE

GPIO_PIN_5);//讀PE5輸入給變量AAA

if(AAA==GPIO_PIN_SET){……}函數原型:GPIO_PinState

HAL_GPIO_ReadPin(GPIO_TypeDef

*GPIOx

uint16_t

GPIO_Pin)功能:讀GPIO引腳的輸入電平,如果輸入高電平則返回“1”;如果輸入低電平,則返回“0”端口名:GPIOx,數據類型為GPIO_TypeDef,指針型,該類型在庫中已被定義,取值為:

GPIOA、GPIOB、……、GPIOG返回值:數據類型為GPIO_PinState,取值為:GPIO_PIN_RESET=

0;GPIO_PIN_SET=

1英語小貼士:Read(讀)、Pin(引腳)、SET(置位、置1)、RESET(復位,清0)、State(狀態)引腳號:GPIO_Pin,數據類型為uint16_t,該類型在庫中已被定義,取值為:GPIO_PIN_0~GPIO_PIN_15

GPIO寫引腳庫函數解析HAL庫函數:HAL_GPIO_WritePin(端口號,引腳號,輸出值)函數原型:void

HAL_GPIO_WritePin

(GPIO_TypeDef*GPIOx,uint16_t

GPIO_Pin,GPIO_PinState

PinState)功能:向GPIO引腳寫“0”或“1”并輸出到引腳上端口名:數據類型為GPIO_TypeDef,該類型在庫中已被定義,取值為:

GPIOA、GPIOB、……、GPIOG引腳號:GPIO_Pin,數據類型為uint16_t,該類型在庫中已被定義,取值為:

GPIO_PIN_0、GPIO_PIN_1、……、GPIO_PIN_15等輸出值:數據類型為GPIO_PinState,有兩個取值:GPIO_PIN_RESET=0;

GPIO_PIN_SET=1返回值:類型為void(空)示例:HAL_GPIO_WritePin

(GPIOD,GPIO_PIN_3,GPIO_PIN_RESET);//向PD3寫0HAL_GPIO_WritePin

(GPIOB,GPIO_PIN_15,GPIO_PIN_SET);//向PB15寫1STM32的固件庫認識STM32的固件庫(STM32FxxxFirmwareLibrary)1、固件庫是ST公司和ARM公司提供的函數庫,含有大量已封裝好可直接使用的庫函數例如HAL_GPIO_ReadPin()。2、固件庫幫助使用者不需要對芯片內部硬件有很多了解,即可利用庫函數進行程序設計,為快速應用提供便利。3、stm32編程通常有三個途徑:(1)利用標準庫編程(StandardPeripheralsLibrary,標準設備庫);

(2)利用HAL庫編程(HardwareAbstractionLayer

Library,抽象印象層庫);

(3)直接對stm32內部寄存器進行編程4、傳統51單片機采用方法(3),即寄存器編程。5、stm32由于比51復雜很多,通常都是利用固件庫編程作為入門,之后再用寄存器編程作為提高。6、標準庫是之前使用的固件庫。HAL庫則是目前主推的固件庫。7、詳細的HAL庫函數說明和函數具體內容可參考手冊,或直接從keil5中讀取主函數的編輯與調試(1)編輯前請注意:?C編譯器不識別中文和中文全角字符。因此除了注釋以外,編輯程序過程中,請大家務必將輸入法切換到英文或者中文半角。否則C編譯器會報錯,切記!?為防止打字錯誤,請盡量利用復制粘貼。主函數的編輯與調試(2)(1)按以上設計在Keil5中寫入主程序,你會發現第6行和第7行出現了警告符號。(2)點擊編譯(Translate)圖標,輸出(Output)窗口指出有2個警告(warnings)。

警告內容:第6、7行存在模糊聲明(declaredimplicitly)。錯誤原因:子函數必須先定義后使用。現在編譯程序沒有找到這兩個函數的定義。于是認為是模糊聲明(實際上是沒有聲明)。主函數的編輯與調試(3)(3)在第2~7行加入GPIOA_Init()和GPIOC_Init()子函數的框架。(4)點擊編譯(Translate)圖標,輸出(Output)窗口顯示0個錯誤(errors)和警告(warnings)。可見雖然子函數的內容尚未編寫,但框架結構正確了,編譯正確。程序結構再認識voidGPIOA_Init(){}voidGPIOC_Init(){}int

main(){}//聲明包含庫文件stm32f1xx.h,該文件包含了關于stm32單片機的相關定義#include"stm32f1xx.h"http://main()函數,主函數,是程序首先運行的函數//兩個子函數,作用是初始化PA0和PC0引腳,運行中被main()調用主函數名字必須是main(),KEIL5要求類型必須是int子函數名字和類型可根據需要自定義子函數必須先定義再使用子函數編輯與解析GPIOA和GPIOC初始化子函數解析(1)程序第5、13行使用了GPIOA和GPIOC時鐘開啟庫(宏)函數。除了供電,單片機的工作離不開時鐘。時鐘就像人的心臟,為單片機的工作提供節拍。對于51單片機,上電復位后GPIO的時鐘是自動開啟的。STM32則不同,要使GPIO工作,需要編程開啟其時鐘。GPIO時鐘開啟和關閉庫宏函數函數名__HAL_RCC_GPIOA_CLK_ENABLE()功能開啟GPIOA的時鐘函數名__HAL_RCC_GPIOA_CLK_DISABLE()功能禁止GPIOA時鐘類似庫函數__HAL_RCC_GPIOB_CLK_ENABLE()、__HAL_RCC_GPIOB_CLK_DISABLE()英語小貼士RCC(ResetandClockControl,復位和時鐘控制)CLK(CLOCK,時鐘)ENABLE(使能、允許)DISABLE(失能、禁止)一般形式__HAL_RCC_GPIOx_CLK_ENABLE()__HAL_RCC_GPIOx_CLK_DISABLE()(x=A~G)GPIOA和GPIOC初始化子函數解析(2)程序第9、18行使用了GPIO初始化庫函數HAL_GPIO_Init(端口名,&初始化變量名)。該函數的意思是按照初始化變量的設置,對指定的端口進行初始化。使用時應注意取地址運算符“&”。例如:HAL_GPIO_Init(GPIOA,&GPIO_InitStructure);//按照變量GPIO_InitStructure的值對GPIOA初始化HAL_GPIO_Init(GPIOB,&AAA);

//按照變量AAA的值對GPIOB做初始化。GPIO初始化庫函數(1)函數名HAL_GPIO_Init(端口名,&初始化變量名)功能按照GPIO初始化變量的值,初始化指定的GPIO端口函數原型voidHAL_GPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_Init)端口名GPIOA~GPIOG,指出對哪個端口進行初始化初始化變量數據類型:GPIO_InitTypeDef,這是一個結構體類型,在庫中定義如下:typedefstruct{uint32_tPin;/*引腳號*/uint32_tMode;/*引腳的工作模式*/uint32_tPull;/*引腳的上拉下拉設置*/uint32_tSpeed;/*引腳速度*/}GPIO_InitTypeDef1.Pin:管腿號,包括:GPIO_PIN_0、GPIO_PIN_1、……、GPIO_PIN_15、GPIO_PIN_All等2.Mode:工作模式,具體取值見后說明3.Pull:上拉和下拉方式,具體取值見后說明4.Speed:輸出速度,具體取值見后說明返回值空GPIO初始化庫函數(2)GPIO引腳做輸入輸出時的設置(部分)引腳用途ModePullSpeed數字量輸入(DI)

數字量輸出(DO)

GPIO_MODE_INPUT(輸入)GPIO_NOPULL(浮空)GPIO_PULLUP(上拉)GPIO_PULLDOWN(下拉)GPIO_MODE_OUTPUT_PP(推挽輸出)GPIO_MODE_OUTPUT_OD(開漏輸出)GPIO_SPEED_FREQ_LOW(低速,最大2MHz)GPIO_SPEED_FREQ_MEDIUM(中速,最大10MHZ)GPIO_SPEED_FREQ_HIGH(高速,最大50MHz)GPIO_InitTypeDefAAA; //定義變量AAA,用于存放GPIO初始化參數__HAL_RCC_GPIOF_CLK_ENABLE();

//開啟GPIOF時鐘

AAA.Pin=GPIO_PIN_5; //指出是PIN_5引腳AAA.Mode=GPIO_MODE_INPUT; //指出該引腳做輸入(INPUT)AAA.Pull=GPIO_PULLDOWN; //設置為內部下拉模式(PULLDOWN)HAL_GPIO_Init(GPIOF,&AAA); //按照以上設置對GPIOF的指定引腳進行初始化GPIO_InitTypeDefBBB; //定義變量BBB,用于存放GPIO初始化參數__HAL_RCC_GPIOD_CLK_ENABLE();

//開啟GPIOD時鐘

BBB.Pin=GPIO_PIN_6; //指出是PIN_6引腳BBB.Mode=GPIO_MODE_OUTPUT_PP; //指出該引腳做推挽輸出(OUTPUTPUSHPULL)BBB.Speed=GPIO_SPEED_FREQ_HIGH; //設置為高速輸出(HIGHFREQUENCESPEED)HAL_GPIO_Init(GPIOF,&AAA); //按照以上設置對GPIOF的指定引腳進行初始化GPIO初始化庫函數(3)例如希望按照變量AAA的設置對PF5引腳進行初始化,要求PF5做數字量輸入,設為下拉,程序如下:例如希望按照變量BBB的設置對PD6引腳進行初始化,要求PD6做數字量輸出、推挽方式,高速,程序如下:GPIO的初始化庫函數(4)(1)GPIO管腿做數字量輸入時,應將其Mode設為GPIO_MODE_INPUT。(2)GPIO_MODE_INPUT下,應設置PULL:(3)本系統PA0采用圖(a)外部上拉,

故應設為:GPIO_PULLDOWNGPIO的初始化庫函數(5)(1)GPIO管腿做數字量輸出時,可將其Mode設為:

GPIO_MODE_OUTPUT_PP(推挽輸出,PP:PushandPull);

GPIO_MODE_OUTPUT_OD(漏極開路輸出,OD:OpenDrain)。?直接驅動DC3V負載情況下,應設置為推挽輸出(PP)。?如果驅動的是DC5V負載,則應設置為漏極開路輸出(OD)本系統PC0直接驅動LED,應設置為推挽輸出。(2)具體是PP還是OD,取決于負載的情況:(3)應根據需要設置其輸出速度Speed:GPIO_SPEED_FREQ_LOW(低速,最大2MHz)GPIO_SPEED_FREQ_MEDIUM(中速,最大10MHZ)GPIO_SPEED_FREQ_HIGH(高速,最大50MHz)程序的編譯生成與下載運行(1)點擊“編譯Translate”按鈕,對程序進行編譯,應顯示沒有錯誤和警告。(2)點擊“生成Build”按鈕,對程序進行生成,應顯示沒有錯誤和警告。(3)也可以直接點擊“重新生成Rebuild”按鈕,代替編譯和生成操作。連接電腦-仿真器-實驗板1、連接電腦-調試器-實驗板,觀察電源指示燈應點亮計算機USB口仿真器作用:1.下載程序2.調試程序3.供電電源指示燈實驗板設置調試方式1、點擊魔術棒Options(選項)設置調試方式2、進入Debug(調試)頁3、選擇:Use:CMSIS-DAPDebugger

4、點擊:Settings(設置)設置調試方式5、在Debug(調試)頁,如果顯示:ErrorNoDebugUnitDevicefound

(錯誤,沒有發現調試單元)說明電腦-仿真器-實驗板沒有正確連接。需要重建連接。設置調試方式5'、在Debug(調試)頁,如果出現IDCODE(機器號),說明連接正確,電腦找到了仿真器。6、將Reset(復位)設置為:SYSRESETREQ(系統復位響應)。設置調試方式7、在FlashDownload(閃存下載)頁,將ResetandRun勾選上(復位后即啟動運行)8、OKOK下載程序1、點Download(下載)按鈕,將程序下載到開發板上的單片機芯片中2、出現:FlashLoadfinished,說明閃存下載完成。運行程序1、現在芯片中已經有程序了。2、實驗板上有LED,確實也連到了PC0。3、但是實驗板上沒有電接點水銀溫度計。

實驗板上PA0連接了一個按鍵K_UP。姑且用這個按鍵模擬溫度開關吧。按下按鍵,開關閉合——用于模擬溫度超限抬起按鍵,開關斷開——用于模擬代表溫度正常4、好了。按下按鍵,看看發生了什么?LED亮了嗎?松開按鍵,LED應該熄滅反復操作,都是如此注意實驗板上數碼管的a段和LED1

接在一起了,它們會同時亮滅于是,我們成功啦!練習1、用PA0接收溫度傳感器輸入,用PC1連接LED的負極,畫電路,編寫程序2、用PA0接收溫度傳感器輸入,用PC7連接LED的正極,畫電路,編寫程序練習PA0PE2PE3PE4PG11請針對以下電路,編寫PA0、PE2、PE3、PE4、PG11引腳的初始化程序按鈕也可畫成以下符號常開按鈕常閉按鈕練習1、用PA15接收壓力傳感器輸入,用PB12連接LED,PB12接LED負極,選擇壓力傳感器,畫電路,編寫完整程序2、用PA3接收行程開關輸入,用PE2連接LED,PE2接LED正極,畫電路,編寫完整程序壓力開關溫度開關液位開關行程開關任務1.4程序設計與調試本任務目標1、能根據任務需求繪制系統流程圖;2、能根據需要確定輸入輸出引腳的工作模式;3、會編寫GPIO引腳初始化函數;4、會利用GPIO讀引腳庫函數采集引腳輸入;5、會利用GPIO寫引腳庫函數向引腳輸出信號;6、會利用示例框架和開發板,在Keil5中進行程序的編輯、編譯、生成、下載和調試;7、能舉一反三獨立進行類似應用的程序設計。項目總目標1、了解單片機的發展及用途,理解其關鍵概念與術語;2、了解單片機產品的開發過程,會使用開發工具進行軟硬件設計與調試;3、理解基于STM32F103ZET6的電源電路原理,能夠獨立進行電源電路的設計與調試;4、理解按鍵、溫度開關等簡單DI電路的原理,能夠獨立進行類似電路的設計與調試;5、理解LED等簡單DO電路的原理,能夠獨立進行類似電路的設計與調試;6、掌握基于HAL庫函數的GPIO引腳讀寫和位操作編程方法;7、能夠按照分組管理的模塊化設計方法進行程序設計與調試;8、了解STM32GPIO電路的內部結構;9、會查找相關資料、閱讀相關文獻。單片機產品設計與制作

(stm32機型)袁秀英石梅香項目1、利用GPIO和位帶操作實現溫度報警任務1.5利用位操作實現溫度報警器總目錄1項目1、利用GPIO和位帶操作實現溫度報警

2項目2、利用SysTick實現溫度報警與控制

3項目3、利用按鍵查詢實現參數設定及顯示

4項目4、利用外部中斷實現工件計數顯示

5項目5、利用定時器實現直流電動機PWM調速6項目6、利用計數器實現工件計數顯示和打包控制

7項目7、利用ADC實現土壤濕度采集

具體工作任務設計基于STM32單片機的溫度報警器,實現如下功能:

溫度超過設定溫度(30℃)時,報警燈點亮;否則,報警燈熄滅。請進行1、方案設計2、器件選型3、電路和程序設計4、完成軟硬件調試。項目總目標1、了解單片機的發展及用途,理解其關鍵概念與術語;2、了解單片機產品的開發過程,會使用開發工具進行軟硬件設計與調試;3、理解基于STM32F103ZET6的電源電路原理,能夠獨立進行電源電路的設計與調試;4、理解按鍵、溫度開關等簡單DI電路的原理,能夠獨立進行類似電路的設計與調試;5、理解LED等簡單DO電路的原理,能夠獨立進行類似電路的設計與調試;6、掌握基于HAL庫函數的GPIO引腳讀寫和位操作編程方法;7、能夠按照分組管理的模塊化設計方法進行程序設計與調試;8、了解STM32GPIO電路的內部結構;9、會查找相關資料、閱讀相關文獻。子目錄1項目1、利用GPIO和位帶操作實現溫度報警

1.1任務1.1 認識STM32單片機及其開發工具1.2任務1.2 方案設計

1.3任務1.3 電路設計

1.4任務1.4 程序設計

1.5任務1.5 利用位帶操作實現溫度報警

1.6任務1.6 stm32軟硬件深入(一)

任務1.5利用位操作實現溫度報警器1、理解位操作的基本概念,會利用給出的框架和位操作文件,

編寫GPIO位操作程序;2、會給程序加入宏定義,提高程序的可移植性;3、理解分組管理的模塊化程序設計思路,會利用現有框架,

設計

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論