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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 20786|回復(fù): 2
收起左側(cè)

STM32點(diǎn)亮一個(gè)LED燈的程序和電路詳細(xì)介紹-庫(kù)函數(shù)操作版本

[復(fù)制鏈接]
ID:399582 發(fā)表于 2018-9-18 16:15 | 顯示全部樓層 |閱讀模式
2.1 點(diǎn)亮你的第一個(gè)LED 燈
在講第一個(gè)實(shí)例之前, 我要先對(duì)許多初入 ARM的朋友說(shuō)明幾個(gè)關(guān)
鍵的學(xué)習(xí)問(wèn)題:
首先是學(xué)習(xí)資料的準(zhǔn)備,在新的處理器出來(lái)后,我們要如何入門,如何進(jìn)行開發(fā),這時(shí)相關(guān)的技術(shù)手冊(cè)就是必須的了,以后我們的講解與分享中都會(huì)回到技術(shù)手冊(cè),來(lái)分析下如何采用手冊(cè)做到空手入門,實(shí)際上這也是工程師的必經(jīng)之路。MCU 的設(shè)計(jì)者設(shè)計(jì)了非常多的外設(shè)寄存器結(jié)合處理器的內(nèi)核構(gòu)成了一個(gè)微控制器,而應(yīng)用工程師僅僅只需要知道如何操作寄存器,而寄存器的操作實(shí)際上往往是傻瓜式的操作,當(dāng)你認(rèn)識(shí)到這一點(diǎn)的時(shí)候就知道 MCU 的控制實(shí)際上沒(méi)有什么難度的,難的地方就是你要知道這些寄存器是干什么的,不同狀態(tài)下代表什么。對(duì)于一個(gè)英語(yǔ)功底非常好的朋友讀這些手冊(cè)就相對(duì)簡(jiǎn)單了。
2.1.1原理分析:
大家之前學(xué)習(xí)過(guò) 51 單片機(jī),也使用過(guò) IO 口。與 ARM CORTEX M0 的 IO 口配置有點(diǎn)區(qū)別,51 不需要設(shè)置 IO 口為輸入或者輸出,而 CORTEX M0 的 IO 口有多種狀態(tài)需要設(shè)置,那么下面我們一一介紹:
首先看看 IO 口的模式,查看 030 參考手冊(cè),找到如下寄存器說(shuō)明,IO 口可以配置為 4 種模式:輸入模式,輸出模式,復(fù)用模式,模擬通道模式。由于 stm32f030 系列多數(shù)的 IO 管腳復(fù)用了其它的外設(shè)功能,比如 I2C,SPI,UART 等,那么此時(shí)就就必須要設(shè)置IO 口為復(fù)用模式。而模擬通道則作為AD,DA 的時(shí)候使用:
0.png
我使用下面一個(gè)等效圖說(shuō)明一下推挽輸出和開漏輸出。如左圖所示:U1 是輸出鎖存器,執(zhí)行 GPIO 管腳寫操作時(shí),在寫脈沖(Write Pulse)的作用下,數(shù)據(jù)被鎖存到 Q和/Q。T1 和 T2 構(gòu)成 CMOS 反相器,T1 導(dǎo)通或 T2 導(dǎo)通時(shí)都表現(xiàn)出較低的阻抗,但T1 和T2不會(huì)同時(shí)導(dǎo)通或同時(shí)關(guān)閉,最后形成的是推挽輸出。如右圖所示,為 GPIO 管腳在開漏輸出模式下的等效結(jié)構(gòu)示意圖。開漏輸出和推挽輸出相比結(jié)構(gòu)基本相同,但只有下拉晶體管 T1 而沒(méi)有上拉晶體管。同樣,T1 實(shí)際上也是多組可編程選擇的晶體管。開漏輸出的實(shí)際作用就是一個(gè)開關(guān),輸出“1”時(shí)斷開、輸出“0”時(shí)連接到 GND(有一定內(nèi)阻) 。
0.jpg
0.jpg
關(guān)于其數(shù)字的復(fù)用功能會(huì)在相應(yīng)外設(shè)里進(jìn)行介紹,我們這里只是談通用 IO 口,也就是 GPIO,現(xiàn)在就來(lái)點(diǎn)亮一個(gè) LED燈,學(xué)過(guò) 51 的同學(xué)可以回憶下,51 是通過(guò)設(shè)置 IO口輸出 0 或者 1 來(lái)驅(qū)動(dòng) LED燈的亮滅。在 STM32F030 中,我們通過(guò)設(shè)置 IO 端口為輸出來(lái)點(diǎn)亮LED等。
2.1.2硬件準(zhǔn)備:
如上圖所示: 青風(fēng) STM32F030 豪華開發(fā)板上,通過(guò)管腳 PA11和管腳 PA12 連接2 個(gè) LED燈,我們下面的任務(wù)首先來(lái)點(diǎn)亮它。IO 管腳接分別接一個(gè)發(fā)光二級(jí)管,然后接高電平,因此當(dāng)把 IO 管腳定義為輸出低電平的時(shí)候,就可以點(diǎn)亮發(fā)光二極管了。
0.jpg
上圖紅色框框中的幾個(gè)文件都是 ST 官方給我們編好的庫(kù)函數(shù)。那邊用戶在使用中,只需要編寫 led.c 驅(qū)動(dòng)文件和 main.c 主函數(shù)就 OK,整個(gè)工程項(xiàng)目大家如果加入分層的思想那么就對(duì)之后的移植非常有利。打個(gè)比方:底層和應(yīng)用程隔離。底層驅(qū)動(dòng)和應(yīng)用層無(wú)關(guān),main.c使用的函數(shù)在 led.c 驅(qū)動(dòng)中已經(jīng)些好,這些才和硬件有關(guān),這是需要移植到不同硬件時(shí), main主函數(shù)是可以不做任何修改的, 只需要修改和底層相關(guān)的led.c
0.jpg
上面的函數(shù)中GPIO_ResetBits函數(shù)和GPIO_SetBits函數(shù)在stm32f0xx_gpio.c驅(qū)動(dòng)文件中所定義了。分別表示復(fù)位和置位相關(guān) IO 管腳。
那么主函數(shù)的編寫就比較簡(jiǎn)單了,我們需要調(diào)用下面 2 個(gè)頭文件,才能夠直接使用我們定義的子函數(shù)。如下使用 LED_Open()函數(shù)就能夠點(diǎn)亮一個(gè) LED 燈了,是不是很簡(jiǎn)單。
0.jpg
那么加入一個(gè)小的延遲delay函數(shù)和打開與關(guān)閉LED子函數(shù)相結(jié)合, 就可以實(shí)現(xiàn)LED閃爍的功能了,寫一個(gè)軟件延遲,函數(shù)如下所示:
0.jpg
下載到青風(fēng) STM32F030 開發(fā)板上運(yùn)行后的效果如下圖所示,按下復(fù)位鍵,LED 開始閃爍:如圖所示,按下復(fù)位鍵后,上方的用戶led燈不停閃爍

完整的pdf格式文檔51黑下載地址:
第一節(jié):點(diǎn)亮led燈.pdf (569.55 KB, 下載次數(shù): 81)
回復(fù)

使用道具 舉報(bào)

ID:439256 發(fā)表于 2018-12-4 15:15 | 顯示全部樓層
學(xué)習(xí)需要感謝
回復(fù)

使用道具 舉報(bào)

ID:436524 發(fā)表于 2018-12-5 15:01 | 顯示全部樓層
好好學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美a级网站 | 99精品视频在线观看 | 国产亚洲一区二区三区在线观看 | 国产亚洲一区二区三区 | 有码在线| 91精品国产一区二区三区 | 欧美精品一二区 | 成人1区2区| 欧美性生活一区二区三区 | 51ⅴ精品国产91久久久久久 | av日韩在线播放 | 色吧色综合 | 国产精品日日做人人爱 | 国产91精品久久久久久久网曝门 | 国产专区在线 | 91香蕉嫩草 | 精品一区在线 | 国产亚洲精品久久久久动 | 久久国产精品久久久久 | 91精品国产欧美一区二区成人 | 伊人久久免费视频 | 亚洲视频第一页 | 国产一级毛片精品完整视频版 | 成人小视频在线免费观看 | 91av在线影院 | 第一区在线观看免费国语入口 | 国产精品久久久久久久久 | 亚洲一区二区三区在线视频 | 在线观看亚洲一区二区 | 神马久久av | 久久精品国产一区二区电影 | www,黄色,com| 人操人免费视频 | 久久成 | 日韩中文字幕一区二区 | 一级欧美视频 | 国产二区精品视频 | 日韩精品在线看 | 波多野结衣先锋影音 | 久久婷婷国产麻豆91 | 久久大香 |