久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 21016|回復: 2
打印 上一主題 下一主題
收起左側

STM32點亮一個LED燈的程序和電路詳細介紹-庫函數操作版本

[復制鏈接]
跳轉到指定樓層
樓主
2.1 點亮你的第一個LED 燈
在講第一個實例之前, 我要先對許多初入 ARM的朋友說明幾個關
鍵的學習問題:
首先是學習資料的準備,在新的處理器出來后,我們要如何入門,如何進行開發,這時相關的技術手冊就是必須的了,以后我們的講解與分享中都會回到技術手冊,來分析下如何采用手冊做到空手入門,實際上這也是工程師的必經之路。MCU 的設計者設計了非常多的外設寄存器結合處理器的內核構成了一個微控制器,而應用工程師僅僅只需要知道如何操作寄存器,而寄存器的操作實際上往往是傻瓜式的操作,當你認識到這一點的時候就知道 MCU 的控制實際上沒有什么難度的,難的地方就是你要知道這些寄存器是干什么的,不同狀態下代表什么。對于一個英語功底非常好的朋友讀這些手冊就相對簡單了。
2.1.1原理分析:
大家之前學習過 51 單片機,也使用過 IO 口。與 ARM CORTEX M0 的 IO 口配置有點區別,51 不需要設置 IO 口為輸入或者輸出,而 CORTEX M0 的 IO 口有多種狀態需要設置,那么下面我們一一介紹:
首先看看 IO 口的模式,查看 030 參考手冊,找到如下寄存器說明,IO 口可以配置為 4 種模式:輸入模式,輸出模式,復用模式,模擬通道模式。由于 stm32f030 系列多數的 IO 管腳復用了其它的外設功能,比如 I2C,SPI,UART 等,那么此時就就必須要設置IO 口為復用模式。而模擬通道則作為AD,DA 的時候使用:

我使用下面一個等效圖說明一下推挽輸出和開漏輸出。如左圖所示:U1 是輸出鎖存器,執行 GPIO 管腳寫操作時,在寫脈沖(Write Pulse)的作用下,數據被鎖存到 Q和/Q。T1 和 T2 構成 CMOS 反相器,T1 導通或 T2 導通時都表現出較低的阻抗,但T1 和T2不會同時導通或同時關閉,最后形成的是推挽輸出。如右圖所示,為 GPIO 管腳在開漏輸出模式下的等效結構示意圖。開漏輸出和推挽輸出相比結構基本相同,但只有下拉晶體管 T1 而沒有上拉晶體管。同樣,T1 實際上也是多組可編程選擇的晶體管。開漏輸出的實際作用就是一個開關,輸出“1”時斷開、輸出“0”時連接到 GND(有一定內阻) 。


關于其數字的復用功能會在相應外設里進行介紹,我們這里只是談通用 IO 口,也就是 GPIO,現在就來點亮一個 LED燈,學過 51 的同學可以回憶下,51 是通過設置 IO口輸出 0 或者 1 來驅動 LED燈的亮滅。在 STM32F030 中,我們通過設置 IO 端口為輸出來點亮LED等。
2.1.2硬件準備:
如上圖所示: 青風 STM32F030 豪華開發板上,通過管腳 PA11和管腳 PA12 連接2 個 LED燈,我們下面的任務首先來點亮它。IO 管腳接分別接一個發光二級管,然后接高電平,因此當把 IO 管腳定義為輸出低電平的時候,就可以點亮發光二極管了。

上圖紅色框框中的幾個文件都是 ST 官方給我們編好的庫函數。那邊用戶在使用中,只需要編寫 led.c 驅動文件和 main.c 主函數就 OK,整個工程項目大家如果加入分層的思想那么就對之后的移植非常有利。打個比方:底層和應用程隔離。底層驅動和應用層無關,main.c使用的函數在 led.c 驅動中已經些好,這些才和硬件有關,這是需要移植到不同硬件時, main主函數是可以不做任何修改的, 只需要修改和底層相關的led.c

上面的函數中GPIO_ResetBits函數和GPIO_SetBits函數在stm32f0xx_gpio.c驅動文件中所定義了。分別表示復位和置位相關 IO 管腳。
那么主函數的編寫就比較簡單了,我們需要調用下面 2 個頭文件,才能夠直接使用我們定義的子函數。如下使用 LED_Open()函數就能夠點亮一個 LED 燈了,是不是很簡單。

那么加入一個小的延遲delay函數和打開與關閉LED子函數相結合, 就可以實現LED閃爍的功能了,寫一個軟件延遲,函數如下所示:

下載到青風 STM32F030 開發板上運行后的效果如下圖所示,按下復位鍵,LED 開始閃爍:如圖所示,按下復位鍵后,上方的用戶led燈不停閃爍

完整的pdf格式文檔51黑下載地址:
第一節:點亮led燈.pdf (569.55 KB, 下載次數: 81)
第三節:按鍵控制.pdf (492.41 KB, 下載次數: 27)
第七節:通用定時器time.pdf (430.4 KB, 下載次數: 22)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:439256 發表于 2018-12-4 15:15 | 只看該作者
學習需要感謝
回復

使用道具 舉報

板凳
ID:436524 發表于 2018-12-5 15:01 | 只看該作者
好好學習
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人在线电影网站 | 精品毛片| 久久久久久免费毛片精品 | 国产精品视频www | 精品美女 | 日韩久久久久 | 亚洲欧美日韩在线一区二区 | 国外激情av | 国产精品日日摸夜夜添夜夜av | 国产免费一区 | 日韩精品一区中文字幕 | 一区在线免费视频 | 亚洲视频一区在线 | 日本综合在线观看 | 黄久久久 | 亚洲欧美中文日韩在线v日本 | 高清18麻豆 | 国产在线精品一区二区三区 | 免费视频一区二区 | 最新中文字幕在线播放 | 久久精品在线免费视频 | 欧美一级视频免费看 | 久草在线在线精品观看 | 一区二区三区在线免费观看 | 一区在线视频 | 国产中文字幕在线 | 久久久久久久久99精品 | 国产黄色av网站 | 成人国产精品久久久 | 国产精品久久性 | 精品视频在线免费观看 | 一区二区三区在线电影 | 亚洲欧美激情视频 | 精品综合 | 国内精品免费久久久久软件老师 | 91在线观看 | 密乳av | 国产成人福利在线观看 | 亚洲国产一 | 欧美成人一区二区 | 国产一区二区三区不卡av |