成人免费无码不卡毛片,亚洲AⅤ无码精品一区二区三区,国产尤物精品视频,久久精品日本亚洲,欧美成人一区三区无码乱码A片,中文字日产幕码一区二区色哟哟,亞洲日韓中文字幕網AV

  • 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

STM32F103系列開發(fā)_點亮LED燈

05/18 09:07
742
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

更多詳細資料請聯(lián)系.docx

共1個文件

1. 前言

STM32目前市面上使用比較廣泛,資料多,接下來就介紹如何快速入門STM32,進行基礎(chǔ)開發(fā)。

這篇文章是STM32F103系列文章的第一篇,主要介紹開發(fā)環(huán)境的搭建、編程思路、如何查看原理圖、配置時鐘,配置GPIO口模式等等。

下面文字是來至STM32中文手冊,對STM32系列做了詳細的介紹:

STM32是一個微控制器產(chǎn)品系列的總稱,目前這個系列中已經(jīng)包含了多個子系列,分別是: STM32小容量產(chǎn)品、 STM32中容量產(chǎn)品、 STM32大容量產(chǎn)品和STM32互聯(lián)型產(chǎn)品;按照功能上的劃分,又可分為STM32F101xx、 STM32F102xx和STM32F103xx系列;

● 小容量產(chǎn)品是指閃存存儲器容量在16K至32K字節(jié)之間的STM32F101xx、 STM32F102xx和STM32F103xx微控制器。
● 中容量產(chǎn)品是指閃存存儲器容量在64K至128K字節(jié)之間的STM32F101xx、 STM32F102xx和STM32F103xx微控制器。
● 大容量產(chǎn)品是指閃存存儲器容量在256K至512K字節(jié)之間的STM32F101xx和STM32F103xx微控制器。
● 互聯(lián)型產(chǎn)品是STM32F105xx和STM32F107xx微控制器。

整體來說,STM32F10x系列里所有型號芯片大多數(shù)功能模塊都是相同,主要是區(qū)別還是:引腳數(shù)量不一樣,F(xiàn)LASH閃存、RAM空間大小不一樣,還有就是功能模塊的數(shù)量不一樣。 配置高的芯片,引腳多,功能模塊多。

配置低的型號,引腳自然就少,功能模塊就少。 但是只要有這個功能模塊,所有型號的代碼都是一樣的編寫方式。所以,STM32F10x系列里所有型號代碼都是通用的。

目前STM32開發(fā)方式主要由3種:寄存器、標準庫、HAL 庫。 其中HAL 庫是目前意法半導體主推的開發(fā)方式,有 STM32CubeMx軟件加持,可以一鍵生成keil工程,圖形化編程非常方便,資源網(wǎng)上也有很多。

當前這個系列文章的STM32開發(fā)主要是選擇寄存器方式開發(fā),寄存器開發(fā)優(yōu)點是: 代碼較少、整體比較精簡,運行效率較高。但是學習成本、入門成本、調(diào)試難度比HAL 庫要難一些,因為使用寄存器開發(fā),需要不斷的看芯片手冊,了解寄存器每個位的詳細功能,需要對芯片寄存器非常熟悉。但是寄存器開發(fā)相對比較通用,所有的芯片都支持寄存器開發(fā),了解寄存器開發(fā)之后,對優(yōu)化庫函數(shù)、HAL庫的效率、對其他芯片編程、入門Linux驅(qū)動開發(fā)、了解硬件等都有一定的幫助。

2. 開發(fā)前準備

入門STM32開發(fā),首先需要準備一塊開發(fā)板,拿到開發(fā)板的原理圖、下載STM32的中文參考手冊,下載一個串口下載軟件、準備一臺windows電腦安裝keil5軟件。

開發(fā)板淘寶很多,推薦買:搭載STM32F103ZET6芯片的板子,可以買系統(tǒng)板也可以買開發(fā)板,系統(tǒng)板的板載資源少,引腳都引出來的,可以自己買模塊擴展;開發(fā)板板載資源較多,引腳基本也是引出來的,板子的價格比較貴,購買可以參考正點原子、野火等一些廠家的板子。 一般購買板子之后,都有配套的資料包:原理圖、手冊都有了。

STM32支持st-link、jlink、串口等多種下載方式,其中成本比較低的就是串口下載,不需要購買額外的硬件,生成hex文件之后,通過串口下載到開發(fā)板運行,如果hex文件較大,下載速度比較慢。如果資金允許,購買st-link、jlink下載更加快,調(diào)試更加方便。

keil軟件最新版可以在這里下載:http://www.myir-tech.com/download.asp?nclassid=108&anclassid=71

image-20220211100907094

下載后,根據(jù)提示,一直點擊next即可。軟件安裝在英文目錄下,防止出現(xiàn)一些不必要的麻煩。

3. 點亮LED燈

準備工作就緒之后,下面就入門STM32,點亮LED燈。

拿到開發(fā)板先看一下LED原理圖,找到LED的硬件接線位置。

image-20220211101603486

關(guān)于keil軟件如何新建STM32工程的文章之前是寫過的,詳細步驟看這里: https://blog.csdn.net/xiaolong1126626497/article/details/119879328

點亮LED燈,需要控制STM32的GPIO口輸出指定的電平,STM32GPIO口編程步驟分為:

  1. 開時鐘
  2. 配置GPIO口模式
  3. 控制GPIO口輸出

中文參考手冊里的第6章和第8章分別介紹了時鐘寄存器和GPIO口配置寄存器,主要看這兩章節(jié)即可。

image-20220211102155405

image-20220211102348433

GPIO口模式配置寄存器有兩個:CRL和CRH,一個IO口由4個二進制位表示,STM32是32位的MCU,一個寄存器是32位,GPIO口分為GPIOA,GPIOB,GPIOC等很多組,每一組的GPIO口的數(shù)量是16個。所以要配置一組GPIO口的模式需要64個二進制位,所以就分成了兩個寄存器來表示。 CRL配置07的GPIO口,CRH就配置815的IO口。

如果GPIO口作為普通的輸出,一般配置位置推挽輸出,如果作為按鍵這種輸入檢測硬件,一般配置為上下拉輸入。如果需要使用GPIO口內(nèi)置的功能輸出,就配置為復(fù)用功能推挽輸出。

配置LED燈對應(yīng)的GPIO口示例代碼:

/*
函數(shù)功能: LED初始化
硬件連接: PB6 PB7 PB8 PB9
特性: 低電平點亮
*/
void LED_Init(void)
{
    //開時鐘
    RCC->APB2ENR|=1<<3;
    //配置GPIO口
    GPIOB->CRL&=0x00FFFFFF;
    GPIOB->CRL|=0x22000000;
    GPIOB->CRH&=0xFFFFFF00;
    GPIOB->CRH|=0x00000022;
    //上拉
    GPIOB->ODR|=1<<6;
    GPIOB->ODR|=1<<7;
    GPIOB->ODR|=1<<8;
    GPIOB->ODR|=1<<9;
}
  • 更多詳細資料請聯(lián)系.docx
    下載

相關(guān)推薦

分宜县| 合阳县| 正蓝旗| 乌兰浩特市| 那曲县| 潞城市| 云梦县| 乐业县| 五指山市| 札达县| 左贡县| 三都| 开远市| 安仁县| 淮北市| 来凤县| 长岛县| 壤塘县| 积石山| 嘉定区| 时尚| 平顺县| 岗巴县| 阳城县| 东兰县| 永寿县| 乃东县| 常宁市| 博湖县| 高尔夫| 瓦房店市| 岚皋县| 赤峰市| 惠州市| 广水市| 凤庆县| 增城市| 卢湾区| 和硕县| 关岭| 合江县|