單片機產(chǎn)品設計與調試-基于STM32F1xx機型和HAL庫函數(shù) 課件 任務1.6-STM32軟硬件深入(一)_第1頁
單片機產(chǎn)品設計與調試-基于STM32F1xx機型和HAL庫函數(shù) 課件 任務1.6-STM32軟硬件深入(一)_第2頁
單片機產(chǎn)品設計與調試-基于STM32F1xx機型和HAL庫函數(shù) 課件 任務1.6-STM32軟硬件深入(一)_第3頁
單片機產(chǎn)品設計與調試-基于STM32F1xx機型和HAL庫函數(shù) 課件 任務1.6-STM32軟硬件深入(一)_第4頁
單片機產(chǎn)品設計與調試-基于STM32F1xx機型和HAL庫函數(shù) 課件 任務1.6-STM32軟硬件深入(一)_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機產(chǎn)品設計與制作

(stm32機型)袁秀英石梅香項目1、利用GPIO和位帶操作實現(xiàn)溫度報警任務1.6STM32深入(一)總目錄1項目1、利用GPIO和位帶操作實現(xiàn)溫度報警

2項目2、利用SysTick實現(xiàn)溫度報警與控制

3項目3、利用按鍵查詢實現(xiàn)參數(shù)設定及顯示

4項目4、利用外部中斷實現(xiàn)工件計數(shù)顯示

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

7項目7、利用ADC實現(xiàn)土壤濕度采集

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

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

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

1.3任務1.3 電路設計

1.4任務1.4 程序設計

1.5任務1.5 利用位帶操作實現(xiàn)溫度報警

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

本次課任務1、GPIO內部是什么樣的結構,支持它既能讀也能寫?2、程序和電路該如何配合?3、STM32內部除了GPIO還有些啥?1、進一步理解GPIO的工作模式及設置方法;2、能看懂GPIO內部結構;3、能說出STM32F1xx內部組成及主要功能;4、會自主查找閱讀GPIO庫函數(shù)和STM32引腳定義相關資料。引腳用途ModePullSpeed數(shù)字量輸入(DI)GPIO_MODE_INPUT(輸入)GPIO_NOPULL(浮空)GPIO_PULLUP(上拉)GPIO_PULLDOWN(下拉)

數(shù)字量輸出(DO)GPIO_MODE_OUTPUT_PP(推挽輸出)

GPIO_SPEED_FREQ_LOW(低速,最大2MHz)GPIO_SPEED_FREQ_MEDIUM(中速,最大10MHZ)GPIO_SPEED_FREQ_HIGH(高速,最大50MHz)GPIO_MODE_OUTPUT_OD(開漏輸出)復用輸入(AlternateIn)GPIO_MODE_AF_INPUT(復用輸入)GPIO_NOPULL(浮空)GPIO_PULLUP(上拉)GPIO_PULLDOWN(下拉)

復用輸出(AlternateOut)GPIO_MODE_AF_PP(復用推挽輸出)

GPIO_SPEED_FREQ_LOW(低速,最大2MHz)GPIO_SPEED_FREQ_MEDIUM(中速,最大10MHZ)GPIO_SPEED_FREQ_HIGH(高速,最大50MHz)GPIO_MODE_AF_OD(復用開漏輸出)模擬量(Analog)GPIO_MODE_ANALOG(模擬量)GPIO_NOPULL(浮空)

中斷請求(Interrupt)GPIO_MODE_IT_RISING(上升沿中斷請求)GPIO_NOPULL(浮空)GPIO_PULLUP(上拉)GPIO_PULLDOWN(下拉)

GPIO_MODE_IT_FALLING(下降沿中斷請求)GPIO_MODE_IT_RISING_FALLING(上升和下降沿中斷請求)事件請求(Event)GPIO_MODE_EVT_RISING(上升沿事件請求)GPIO_NOPULL(浮空)GPIO_PULLUP(上拉)GPIO_PULLDOWN(下拉)

GPIO_MODE_EVT_FALLING(下降沿事件請求)GPIO_MODE_EVT_RISING_FALLING(上升沿和下降沿事件請求)引腳用途ModePullSpeed數(shù)字量輸入(DI)GPIO_MODE_INPUT(輸入)GPIO_NOPULL(不拉,浮空)GPIO_PULLUP(上拉)GPIO_PULLDOWN(下拉)

如何確定GPIO的工作模式1、GPIO做DI引腳1、GPIO做DI引腳如何確定GPIO的工作模式練一練:確定以下電路GPIO引腳的工作模式,并編寫初始化程序。

如何確定GPIO的工作模式引腳用途ModePullSpeed數(shù)字量輸出(DO)GPIO_MODE_OUTPUT_PP(推挽輸出)

GPIO_SPEED_FREQ_LOW(低速,最大2MHz)GPIO_SPEED_FREQ_MEDIUM(中速,最大10MHZ)GPIO_SPEED_FREQ_HIGH(高速,最大50MHz)GPIO_MODE_OUTPUT_OD(開漏輸出)2、GPIO做DO引腳如何確定GPIO的工作模式2、GPIO做DO引腳當STM32單片機與LED、蜂鳴器等設備進行連接時,可以將其工作模式設置為推挽輸出或開漏輸出中的一種,它們都屬于DO輸出。STM32GPIO引腳推挽輸出的驅動能力為±25mA。如果負載電流在這個范圍,就可以直接用GPIO引腳驅動負載,并將其設為推挽輸出模式。(a)LED點亮時,電流流入單片機(灌電流、挽)

(b)LED點亮時,電流流出單片機(拉電流、推)如何確定GPIO的工作模式可以將負載接在GPIO引腳和地之間也可將負載接在GPIO引腳和電源正極之間但要注意確保負載能正常工作1.直插發(fā)光二極管壓降紅色發(fā)光二極管的壓降為2.0--2.2V黃色發(fā)光二極管的壓降為1.8—2.0V綠色發(fā)光二極管的壓降為3.0—3.2V正常發(fā)光時的額定電流約為20mA。2.貼片LED壓降紅色的壓降為1.82-1.88V,電流5-8mA綠色的壓降為1.75-1.82V,電流3-5mA橙色的壓降為1.7-1.8V,電流3-5mA蘭色的壓降為3.1-3.3V,電流8-10mA白色的壓降為3-3.2V,電流10-15mA.STM32F103ZET6PA03.3V200限流電阻PA0輸出低電平LED點亮PA0輸出高電平LED熄滅灌電流(亮燈時電流灌入芯片)PA0輸出高電平LED點亮PA0輸出低電平LED熄滅STM32F103ZET6PA0200限流電阻拉電流(亮燈時電流流出芯片)限流電阻計算:R=(VDD-LED管壓降)/LED工作電流如何確定GPIO的工作模式2、GPIO做DO引腳當負載工作電流大于25mA時,推挽輸出提供的電流不能滿足負載的工作需要。此時仍可以將STM32設置為推挽輸出,然后在負載和單片機之間加入驅動電路。如圖,STM32的PB5直接接三極管的基極,再通過三極管驅動電路驅動蜂鳴器。由于三極管基極需要的電流很小,STM32完全可以提供;三極管射極電流較大,可以驅動蜂鳴器工作。當然,驅動電路也可以采用其它電路形式和驅動器件。2、GPIO做DO引腳如何確定GPIO的工作模式2、GPIO做DO引腳如何確定GPIO的工作模式推挽輸出情況下,輸出電流的大小受到內部等效電阻的限制設為推挽輸出(OUTPUT_PP):PA0輸出“1”時,通過內部等效電阻為負載供電設為開漏輸出(OUTPUT_OD):PA0與內部等效電阻之間不通PA0輸出“1”時,內部懸空必須外接上拉電阻通過外部上拉電阻為負載供電沒有外部上拉電阻,負載也懸空,得不到高電平改變外部上拉電阻大小,可在一定范圍內提高負載電流如果負載是5V供電可再程序中將GPIO引腳設置為漏極開路輸出(OUTPUT_OD)并在電路中外接上拉電阻這是STM32漏極開路輸出的主要應用——用GPIO引腳驅動DC5V負載2、GPIO做DO引腳練一練:(1)用PA8接收壓力傳感器輸入,用PB12連接LED,PB12接LED負極,要求PA15浮空輸入模式,PB12推挽輸出,畫電路,編寫完整程序。(2)用PA3接收行程開關輸入,用PE2連接LED,PE2接LED正極,畫電路,要求PA3上拉輸入,PE2開漏輸出,畫電路,編寫完整程序。如何確定GPIO的工作模式引腳用途ModePullSpeed復用輸入(AlternateIn)GPIO_MODE_AF_INPUT(復用輸入)GPIO_NOPULL(浮空)GPIO_PULLUP(上拉)GPIO_PULLDOWN(下拉)3、GPIO做復用輸入引腳如何確定GPIO的工作模式為了減少引腳數(shù)量,單片機的引腳大多具有多個功能。這被稱為引腳復用技術。例如PC14引腳,它既可以作為PC14引腳,接收傳感器輸入,或者控制LED等設備的工作;也可以作為OSC32_IN引腳為芯片的RTC電路提供時鐘輸入。而PC15引腳則既可以作PC15,也可以做OSC32_OUT,作為RTC的時鐘輸出引腳。當GPIO引腳使用復用功能時,就是復用功能被開啟。當復用功能也分為輸入和輸出兩種情況。復用功能的具體使用方法本項目暫不介紹。引腳用途ModePullSpeed復用輸出(AlternateOut)GPIO_MODE_AF_PP(復用推挽輸出)

GPIO_SPEED_FREQ_LOW(低速,最大2MHz)GPIO_SPEED_FREQ_MEDIUM(中速,最大10MHZ)GPIO_SPEED_FREQ_HIGH(高速,最大50MHz)GPIO_MODE_AF_OD(復用開漏輸出)4、GPIO做復用輸出引腳如何確定GPIO的工作模式當STM32單片機與熱電偶、熱電阻等模擬量輸出的傳感器進行連接時,需要將引腳設為模擬輸入。當STM32單片機需要向負載輸出模擬電壓或電流信號時,需要將引腳設置為模擬輸出模擬量輸入輸出的具體方法本項目暫不介紹。5、GPIO做模擬量信號引腳如何確定GPIO的工作模式引腳用途ModePullSpeed模擬量(Analog)GPIO_MODE_ANALOG(模擬量)GPIO_NOPULL(浮空)引腳用途ModePullSpeed中斷請求(Interrupt)

GPIO_MODE_IT_RISING(上升沿中斷請求)GPIO_NOPULL(浮空)GPIO_PULLUP(上拉)GPIO_PULLDOWN(下拉)GPIO_MODE_IT_FALLING(下降沿中斷請求)GPIO_MODE_IT_RISING_FALLING(上升和下降沿中斷請求)事件請求(Event)

GPIO_MODE_EVT_RISING(上升沿事件請求)GPIO_MODE_EVT_FALLING(下降沿事件請求)GPIO_MODE_EVT_RISING_FALLING(上升和下降沿事件請求)6、GPIO做中斷/事件請求引腳如何確定GPIO的工作模式GPIO引腳也可以用于接收中斷或事件請求。具體使用方法本項目暫不介紹。GPIO的內部結構每一根GPIO引腳在內部都對應一套電路,包括保護電路、輸入電路和輸出電路等當引腳例如PA0做DI輸入時

CPU會自動禁止輸出電路工作允許輸入電路工作當引腳例如PA0做DO輸出時

CPU會自動禁止輸入電路工作允許輸出電路工作GPIO管腿做開關量/數(shù)字量輸入(DI)引腳上輸入的信號經(jīng)保護電路、內部上拉/下拉電路、“肖特基觸發(fā)器”比較后輸出0或者1被送入“輸入數(shù)據(jù)寄存器”儲存起來等待程序讀出1、GPIO做DI引腳,應被設置為GPIO_MODE_INPUT設置為GPIO_NOPULL——內部上拉和下拉開關都斷開外部引腳能得到穩(wěn)定高、低電平時使用設置為GPIO_PULLUP——內部上拉開關閉合確保引腳懸空時內部能得到穩(wěn)定高電平設置為GPIO_PULLDOWN——內部下拉開關閉合確保引腳懸空時內部能得到穩(wěn)定低電平HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)例如PA0設置為GPIO_MODE_INPUT——就是使能肖特基觸發(fā)器和輸入數(shù)字寄存器0/1GPIO管腿做數(shù)字量輸出(DO)輸出數(shù)據(jù)寄存器”的內容經(jīng)輸出驅動送到I/O引腳2、GPIO做DO引腳,且設置為推挽輸出GPIO_MODE_OUTPUT_PP時HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET

)例如PA0“1”“0”“0”1多路開關輸出得到高電平導通截止GPIO管腿做數(shù)字量輸出(DO)“輸出數(shù)據(jù)寄存器”的內容經(jīng)輸出驅動送到I/O引腳2、GPIO做DO引腳,且設置為推挽輸出GPIO_MODE_OUTPUT_PP時HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET

)例如PA0“0”“1”“1”0多路開關輸出得到低電平截止導通GPIO管腿做數(shù)字量輸出(DO)“輸出數(shù)據(jù)寄存器”的內容經(jīng)輸出驅動送到I/O引腳2、GPIO做DO引腳,且設置為漏開輸出GPIO_MODE_OUTPUT_OD時HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET

)例如PA0“1”“0”“0”1多路開關輸出引腳懸空被斷開截止要想使連接在引腳上的負載得到穩(wěn)定的高電平,就必須外接上拉電阻。GPIO管腿做數(shù)字量輸出(DO)“輸出數(shù)據(jù)寄存器”的內容經(jīng)輸出驅動送到I/O引腳2、GPIO做DO引腳,且設置為漏開輸出GPIO_MODE_OUTPUT_OD時HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET

)例如PA0“0”“1”“1”0多路開關被斷開導通輸出得到低電平漏極開路輸出不會影響低電平輸出GPIO管腿做模擬輸入/輸出(AI/AO)此時I/O引腳上輸入的信號也不經(jīng)過TTL肖特基觸發(fā)器,而是直接送入片上的模擬量輸入電路,等待模擬量輸入電路處理。3、GPIO做AI(模擬量輸入)引腳,應被設置為GPIO_MODE_ANALOG模擬量輸入信號不需要肖特基觸發(fā)器也不需要上下拉電阻(NOPULL)GPIO管腿做模擬輸入/輸出(AI/AO)此時模擬量輸出設備的輸出信號被送到引腳上。4、GPIO做AO(模擬量輸出)引腳,也應被設置為GPIO_MODE_ANALOG模擬量輸出信號有自己的輸出驅動電路,不需要推挽輸出或漏極開路輸出電路GPIO管腿做復用輸入/輸出(AF)引腳上輸入的信號經(jīng)“肖特基觸發(fā)器”比較后輸出0或者1,被送入復用功能對應的電路5、GPIO做復用輸入引腳,應設置為GPIO_MODE_AF_INPUT復用輸入電路需要數(shù)字量輸入,因此需要肖特基觸發(fā)器,也有上下拉的設置需求GPIO管腿做復用輸入/輸出(AF)來自復用設備的信號,經(jīng)多路開關被輸出到輸出驅動電路,最后送到I/O引腳6、GPIO做復用輸入引腳,應設置為GPIO_MODE_AF__PP時例如PA0多路開關復用輸出電路是數(shù)字量輸出,與GPIO共用輸出驅動電路GPIO管腿做復用輸入/輸出(AF)來自復用設備的信號,經(jīng)多路開關被輸出到輸出驅動電路,最后送到I/O引腳6、GPIO做復用輸入引腳,應設置為GPIO_MODE_AF__OD時例如PA0多路開關被斷開復用輸出電路是數(shù)字量輸出,與GPIO共用輸出驅動電路STM32內部組成部件(1)Cortex內核,即CPU部分,它是單片機的核心和大腦。APB2APB1STM32內部組成部件(2)Flash:FlashROM(FlashReadOnlyMemory),閃速程序存儲器。主要用于存儲用戶編好的程序。STM32F103ZET6有512KBFLASHROM(3)SRAM:靜態(tài)數(shù)據(jù)存儲器(StaticRandomMemory),主要用于存儲程序運行中需要的各種變量。STM32F103ZET6有64KBSRAM(4)FSMC:外部擴展存儲器接口,用于擴展單片機片外存儲器,以獲得更大的存儲容量。APB2APB1STM32內部組成部件(5)SDIO:SD卡接口,用于與SD卡設備通信。(6)復位和時鐘控制電路(RCC):為單片機內的各個部件提供時鐘。APB2APB1STM32內部組成部件(7)GPIO:包括GPIOA、GPIOB、……GPIOG。是通用輸入輸出端口(GeneralInputOuputPort),可以接收按鍵、傳感器等設備的輸入,也能控制LED等設備的輸出。對單片機應用開發(fā)工程師而言,GPIO是最經(jīng)常被使用、直接打交道的設備。GPIO是雙向端口,既可用于數(shù)據(jù)輸入,也可用于數(shù)據(jù)輸出。(8)TIM1~TIM8:定時器,當需要進行精確定時時,可以使用定時器。APB2APB1STM32內部組成部件(9)ADC1~ADC3:模擬量輸入接口。能夠將輸入模擬量轉換成數(shù)字量送CPU(Cortex)。當單片機需要處理模擬量輸入,例如熱電偶的mV信號時,就需要用到ADC(AnalogDigitalConverter)。(10)DAC:模擬量輸出接口??梢詫PU輸出的數(shù)字量轉換成模擬量輸出到外部設備,以提供一個0~VREF的可控電壓APB2APB1STM32內部組成部件(11)USB接口:用于與USB設備的通信。(12)UART、SPI、I2C、CAN接口:用于與UART、SPI、I2C、CAN等設備進行通信。(13)DMA:直接存儲器訪問(DirectMemoryAccess),用于存儲器與設備之間直接進行數(shù)據(jù)交換而不是通過CPU進行交換。APB2APB1STM32內部組成部件(14)總線:總線是設備之間信號聯(lián)系的通道。包括Icode總線、Dcode總線System總線、DMA總線、總線矩陣、AHB總線、APB1總線、APB2總線等。Cortex-M3內核與Flash、SRAM、GPIO等設備之間必須通

溫馨提示

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

評論

0/150

提交評論