一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32F103系列開(kāi)發(fā)_點(diǎn)亮LED燈

DS小龍哥-嵌入式技術(shù) ? 來(lái)源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2022-05-26 10:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 前言

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

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

下面文字是來(lái)至STM32中文手冊(cè),對(duì)STM32系列做了詳細(xì)的介紹:

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

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

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

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

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

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

2. 開(kāi)發(fā)前準(zhǔn)備

入門(mén)STM32開(kāi)發(fā),首先需要準(zhǔn)備一塊開(kāi)發(fā)板,拿到開(kāi)發(fā)板的原理圖、下載STM32的中文參考手冊(cè),下載一個(gè)串口下載軟件、準(zhǔn)備一臺(tái)windows電腦安裝keil5軟件。

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

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

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

image-20220211100907094

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

3. 點(diǎn)亮LED

準(zhǔn)備工作就緒之后,下面就入門(mén)STM32,點(diǎn)亮LED燈。

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

image-20220211101603486

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

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

開(kāi)時(shí)鐘

配置GPIO口模式

控制GPIO口輸出

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

image-20220211102155405image-20220211102348433

GPIO口模式配置寄存器有兩個(gè):CRL和CRH,一個(gè)IO口由4個(gè)二進(jìn)制位表示,STM32是32位的MCU,一個(gè)寄存器是32位,GPIO口分為GPIOA,GPIOB,GPIOC等很多組,每一組的GPIO口的數(shù)量是16個(gè)。所以要配置一組GPIO口的模式需要64個(gè)二進(jìn)制位,所以就分成了兩個(gè)寄存器來(lái)表示。 CRL配置0~7的GPIO口,CRH就配置8~15的IO口。

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

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

/*
函數(shù)功能: LED初始化
硬件連接: PB6 PB7 PB8 PB9
特性: 低電平點(diǎn)亮
*/
void LED_Init(void)
{
    //開(kāi)時(shí)鐘
    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;
}
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7953

    瀏覽量

    155051
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1596

    瀏覽量

    109741
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    364944
  • STM32F103
    +關(guān)注

    關(guān)注

    33

    文章

    483

    瀏覽量

    65528
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何利用STM32F103點(diǎn)亮一個(gè)LED

    基于STM32F103點(diǎn)亮一個(gè)LED1、實(shí)驗(yàn)?zāi)康?、實(shí)驗(yàn)要求3、proteus仿真圖4、程序代碼1、實(shí)驗(yàn)?zāi)康?、掌握使用KEIL MDK5進(jìn)行軟件
    發(fā)表于 12-16 08:28

    基于STM32F103 RET6芯片點(diǎn)亮LED

    博客內(nèi)容基于STM32F103 RET6芯片,點(diǎn)亮PC3引腳LED,程序主要參考B站:STM32F103
    發(fā)表于 12-16 06:10

    如何去實(shí)現(xiàn)一種STM32F103點(diǎn)亮LED流水燈的設(shè)計(jì)

    STM32F103系列芯片的映射原理是什么?GPIO端口的初始化設(shè)置步驟有哪些?如何去實(shí)現(xiàn)一種STM32F103點(diǎn)亮LED流水燈的設(shè)計(jì)?
    發(fā)表于 02-11 07:12

    如何使用STM32F103系列芯片以寄存器的方式點(diǎn)亮LED流水燈

    STM32的IO口可以由軟件配置成哪幾種模式呢?如何使用STM32F103系列芯片以寄存器的方式點(diǎn)亮LED流水燈?
    發(fā)表于 02-11 08:12

    如何利用STM32F103點(diǎn)亮LED

    STM32F103點(diǎn)亮LED
    發(fā)表于 02-21 06:38

    stm32f103系列引腳定義-功能圖

    本文介紹stm32f103系列芯片引腳功能定義如STM32F103C8T6,STM32F103RCT6等引腳圖各個(gè)管腳的功能與使用。
    發(fā)表于 08-03 17:03 ?26.1w次閱讀
    <b class='flag-5'>stm32f103</b><b class='flag-5'>系列</b>引腳定義-功能圖

    盤(pán)古STM32F103開(kāi)發(fā)板移植uCGUI教程

    盤(pán)古STM32F103開(kāi)發(fā)板移植uCGUI教程
    發(fā)表于 09-29 09:21 ?21次下載
    盤(pán)古<b class='flag-5'>STM32F103</b><b class='flag-5'>開(kāi)發(fā)</b>板移植uCGUI教程

    stm32f103移植

    stm32f103移植
    發(fā)表于 10-27 09:03 ?43次下載
    <b class='flag-5'>stm32f103</b>移植

    STM32F103設(shè)計(jì)開(kāi)發(fā)原理圖.pdf

    STM32F103設(shè)計(jì)開(kāi)發(fā)原理圖
    發(fā)表于 05-19 10:04 ?255次下載

    STM32F103點(diǎn)亮LED流水燈

    本文主要敘述了什么是寄存器及用寄存器和庫(kù)函數(shù)的方式點(diǎn)亮LED流水燈,本文主要采用stm32f103c8t6開(kāi)發(fā)開(kāi)發(fā)環(huán)境:keil μVis
    發(fā)表于 11-26 10:21 ?20次下載
    <b class='flag-5'>STM32F103</b><b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b>流水燈

    STM32F103_IOT物聯(lián)網(wǎng)開(kāi)發(fā)板學(xué)習(xí)專(zhuān)欄3_STM32F103控制LED

    STM32F103_IOT物聯(lián)網(wǎng)開(kāi)發(fā)板學(xué)習(xí)專(zhuān)欄3_STM32F103控制LED
    發(fā)表于 12-03 17:51 ?7次下載
    <b class='flag-5'>STM32F103</b>_IOT物聯(lián)網(wǎng)<b class='flag-5'>開(kāi)發(fā)</b>板學(xué)習(xí)專(zhuān)欄3_<b class='flag-5'>STM32F103</b>控制<b class='flag-5'>LED</b><b class='flag-5'>燈</b>

    STM32F103點(diǎn)亮LED

    文章目錄一、點(diǎn)燈1.打開(kāi)時(shí)鐘2. 初始化3. 設(shè)置低電平三、創(chuàng)建項(xiàng)目1. 新建項(xiàng)目2. 編寫(xiě)代碼四、連接電路五、總結(jié)使用工具:stm32f103C8T6USB轉(zhuǎn)串口面包板導(dǎo)線若干LED3個(gè)一、點(diǎn)燈
    發(fā)表于 12-07 09:51 ?16次下載
    <b class='flag-5'>STM32F103</b><b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>

    GD32F103STM32F103的區(qū)別 2021.6.2

    GD32F103STM32F103區(qū)別介紹關(guān)鍵詞Key words:GD32F103STM32F103摘要Abstract:本文主要是GD32F
    發(fā)表于 12-08 11:06 ?83次下載
    GD32<b class='flag-5'>F103</b>與<b class='flag-5'>STM32F103</b>的區(qū)別 2021.6.2

    STM32F103實(shí)驗(yàn)一:點(diǎn)亮LED

    STM32F103點(diǎn)亮LED
    發(fā)表于 12-27 18:36 ?49次下載
    <b class='flag-5'>STM32F103</b>實(shí)驗(yàn)一:<b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>

    【嵌入式】STM32F103寄存器方式點(diǎn)亮LED流水燈

    目錄一、實(shí)驗(yàn)題目二、工程文件的建立三、點(diǎn)亮LED(軟件部分)四、點(diǎn)亮LED(實(shí)操部分)五、實(shí)
    發(fā)表于 01-13 14:56 ?3次下載
    【嵌入式】<b class='flag-5'>STM32F103</b>寄存器方式<b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b>流水燈