一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲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)不再提示

STM32系列MCU,寫(xiě)寄存器Or利用固件庫(kù)

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來(lái)源:未知 ? 作者:李倩 ? 2018-08-09 17:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

寫(xiě)在開(kāi)頭的話:

最近心血來(lái)潮,打算重新?lián)炱鹄媳拘校Y(jié)果發(fā)現(xiàn)很多都忘記了。干脆重新開(kāi)始學(xué)習(xí),并做個(gè)從零開(kāi)始的筆記了。

STM32系列MCU

STM32系列芯片包括F0/F1/F2/F3/F4/F7/L0/L1/L4/H7等系列芯片芯片。不同系列的芯片適用于不同的應(yīng)用場(chǎng)景。F0/L0基于ARM Cortex?-M0,F(xiàn)1/F2/L1系列基于ARM Cortex?-M3,F(xiàn)3/F4/L4系列基于ARM Cortex?-M4,F(xiàn)7/H7基于ARM Cortex?-M7。L系列表示超低功耗,H表示超高性能(對(duì)應(yīng)就是高功耗了),F(xiàn)就是個(gè)折中方案了,性能不錯(cuò),功耗也不高。

其他的先不管,F(xiàn)1系列芯片主要分類(lèi)如下:

·超值型STM32F100 - 24 MHz CPU,具有電機(jī)控制和CEC功能

·基本型STM32F101 - 36 MHz CPU,具有高達(dá)1MB的Flash

·連接型STM32F102 – 48 MHz CPU具備USB FS device接口

·增強(qiáng)型STM32F103 - 72 MHz CPU,具有高達(dá)1MB的Flash、電機(jī)控制、USB和CAN

·互聯(lián)型STM32F105/107 - 72 MHz CPU,具有以太網(wǎng)MAC、CAN和USB 2.0 OTG

STM32型號(hào)的說(shuō)明:以STM32F103RBT6這個(gè)型號(hào)的芯片為例,該型號(hào)的組成為7個(gè)部分,其命名規(guī)則如下:

具體信息可查閱網(wǎng)站https://www.stmcu.com.cn/。

RTT操作系統(tǒng)

官網(wǎng)的簡(jiǎn)介:

RT-Thread是一款來(lái)自中國(guó)的開(kāi)源嵌入式實(shí)時(shí)操作系統(tǒng),由國(guó)內(nèi)一些專(zhuān)業(yè)開(kāi)發(fā)人員從2006年開(kāi)始開(kāi)發(fā)、維護(hù),除了類(lèi)似FreeRTOSUCOS的實(shí)時(shí)操作系統(tǒng)內(nèi)核外,也包括一系列應(yīng)用組件和驅(qū)動(dòng)框架,如TCP/IP協(xié)議棧,虛擬文件系統(tǒng),POSIX接口,圖形用戶(hù)界面,F(xiàn)reeModbus主從協(xié)議棧,CAN框架,動(dòng)態(tài)模塊等,因?yàn)橄到y(tǒng)穩(wěn)定,功能豐富的特性被廣泛用于新能源,電網(wǎng),風(fēng)機(jī)等高可靠性行業(yè)和設(shè)備上,已經(jīng)被驗(yàn)證是一款高可靠的實(shí)時(shí)操作系統(tǒng)。RT-Thread實(shí)時(shí)操作系統(tǒng)遵循GPLv2+許可證,實(shí)時(shí)操作系統(tǒng)內(nèi)核及所有開(kāi)源組件可以免費(fèi)在商業(yè)產(chǎn)品中使用,不需要公布應(yīng)用源碼,沒(méi)有任何潛在商業(yè)風(fēng)險(xiǎn)。

RT-Thread操作系統(tǒng)源碼風(fēng)格與linux一致,在官方提供的源碼中,包含有諸多芯片的工程示例,LPC系列和STM32F系列的很多。再者RT-Thread代碼開(kāi)源,又有那么詳細(xì)的資料,如果遇到官方bsp下沒(méi)有的芯片,對(duì)于動(dòng)手能力強(qiáng)的同學(xué),自己動(dòng)手移植也比較方便。而且官方提供了詳細(xì)的中文文檔,對(duì)于英語(yǔ)不太好的同學(xué)簡(jiǎn)直就是一個(gè)福音。而且,RT-Thread提供了豐富的組件,使用者可以非常方便的實(shí)現(xiàn)諸如GUI、網(wǎng)絡(luò)協(xié)議棧、Modbus甚至是SQLite數(shù)據(jù)庫(kù)等功能。后續(xù)使用的時(shí)候再細(xì)細(xì)體會(huì)它的強(qiáng)大之處了。

寫(xiě)寄存器Or利用固件庫(kù)

嵌入式的編程,往下說(shuō)就是操作MCU的寄存器。而固件庫(kù)就是函數(shù)的集合,固件庫(kù)函數(shù)的作用是向下負(fù)責(zé)與寄存器直接打交道,向上提供用戶(hù)函數(shù)調(diào)用的接口(API)。相對(duì)于固件庫(kù)的方式,直接寫(xiě)寄存器的代碼更為簡(jiǎn)潔,只需要對(duì)指定的寄存器進(jìn)行需要的操作就可以了,但是對(duì)于STM32來(lái)說(shuō),寄存器多達(dá)數(shù)百個(gè),記起來(lái)也是一件非常讓人頭疼的事情。ST推出了官方固件庫(kù),固件庫(kù)將這些寄存器底層操作都封裝起來(lái),提供一整套接口,你不需要去知道操作的是哪個(gè)寄存器,你只需要知道調(diào)用哪些函數(shù)即可。關(guān)于寫(xiě)寄存器還是利用固件庫(kù)去開(kāi)發(fā)哪個(gè)好,一直都有爭(zhēng)議,只能說(shuō)存在即為合理,各有各的好處,我個(gè)人比較懶,不太喜歡去記那些寄存器都是啥。再者,我也不是專(zhuān)門(mén)搞STM32的,要是用寫(xiě)寄存器的方式開(kāi)發(fā)的話,過(guò)一段時(shí)間不弄,再回來(lái)估計(jì)又得花些時(shí)間對(duì)著文檔看了。所以在后續(xù)的博客,我也都會(huì)利用固件庫(kù)開(kāi)發(fā)。當(dāng)然,用不用是一回事兒,根據(jù)官網(wǎng)技術(shù)文檔,操作寄存器的方式是必須要會(huì)的。個(gè)人建議,還是需要學(xué)會(huì)看硬件文檔,看官方的技術(shù)資料,而不是遇到問(wèn)題就百度。學(xué)會(huì)看官方的技術(shù)文檔后,遇到問(wèn)題解決起來(lái)將會(huì)事半功倍。

點(diǎn)亮LED

點(diǎn)亮LED,首先自然是安裝Keil了。當(dāng)然,使用其他工具也可以,對(duì)于我來(lái)說(shuō),我還是比較鐘情于Keil。我現(xiàn)在使用的是Keil5,編譯工具鏈為MDK-ARM v5.24。開(kāi)發(fā)板為淘寶上找的便宜的不能再便宜的一塊STM32C8T6開(kāi)發(fā)板,引腳都要自己焊。下載線為ST-Link v2。根據(jù)淘寶商提供的硬件資料,這個(gè)板子PB12連接了一個(gè)LED燈,LED另外一端連接了上拉電阻,即LED在PB12低電平時(shí)點(diǎn)亮。

廢話不說(shuō)了,Keil的安裝和破解,網(wǎng)上多的是,隨便找個(gè)教程,走一走就完了。

第一步,創(chuàng)建工程

打開(kāi)Keil后,首先需要?jiǎng)?chuàng)建個(gè)工程。點(diǎn)擊project->New μVision Project。

填寫(xiě)工程名

選擇芯片,如果沒(méi)有你要的芯片,就需要到官網(wǎng)上去下載,然后安裝。

選擇需要用到的功能,Core、Startup和GPIO,可以看到下面有警告,GPIO依賴(lài)FrameWork和RCC,也要去勾選上就好了。

然后確定,工程就創(chuàng)建成功了。

第二步,增加main.c文件到工程中

點(diǎn)擊如下按鈕,創(chuàng)建一個(gè)新文件,并保存文件到工程目錄中。

點(diǎn)擊工程管理按鈕,管理工程

點(diǎn)擊Add Files 把main.c加入到Source Group 1下,Target 1和Source Group 1都可以修改,改成一個(gè)合適的名字。

第三部,編寫(xiě)main.c 文件

#include"stm32f10x.h"

聲明:本文內(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)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23843

    瀏覽量

    674054
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17981

    瀏覽量

    366843
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    364885

原文標(biāo)題:STM32F103+RT-Thread從零開(kāi)始(一)——點(diǎn)亮LED

文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    STM32使用固件庫(kù)還是直接寄存器編程

    最近看到初學(xué)者對(duì)于STM32是使用固件庫(kù)編程還是使用直接操作寄存器編程之間猶豫不決,現(xiàn)在自己也困惑其中。固件
    發(fā)表于 09-17 23:06

    STM32固件庫(kù)使用手冊(cè),STM32寄存器資料

    STM32寄存器資料,現(xiàn)在好多人都不調(diào)用ST的庫(kù)來(lái)寫(xiě)程序,喜歡底層操作,底層寄存器操作就一定要了解寄存器怎么使用,這資料少不了,有需要的也可
    發(fā)表于 07-25 12:34

    怎么把寄存器編程封裝成固件庫(kù)編程

    基于野火“霸道”和“指南”——零死角玩轉(zhuǎn)STM32入門(mén)&中級(jí)篇學(xué)習(xí)地址:課程簡(jiǎn)介:本課程從STM32內(nèi)存映射開(kāi)始講起,告訴你什么是寄存器,怎么樣實(shí)現(xiàn)寄存器編程,然后怎么把
    發(fā)表于 08-03 06:47

    基于寄存器固件庫(kù)stm32 LED流水燈實(shí)例分享

    基于寄存器固件庫(kù)stm32 LED流水燈實(shí)例分享
    發(fā)表于 12-02 06:10

    基于固件庫(kù)寄存器stm32程序編寫(xiě)的區(qū)別

    一、基于固件庫(kù)寄存器stm32程序編寫(xiě)的區(qū)別1.基于固件庫(kù)
    發(fā)表于 01-18 09:25

    寄存器固件庫(kù)STM32的串口通訊介紹

    文章目錄寄存器固件庫(kù)STM32的串口通訊1、程序2、硬件總結(jié)寄存器固件
    發(fā)表于 02-10 07:24

    基于寄存器與基于固件庫(kù)編程方式的差異

    stm32f103核心板串口通信入門(mén)一、 基于寄存器與基于固件庫(kù)編程方式的差異二、stm32串口通信1. 前期準(zhǔn)備硬件軟件連接2.編寫(xiě)程序并
    發(fā)表于 02-11 07:35

    如何用STM32固件庫(kù)來(lái)建立工程

    這節(jié)課主要給朋友們講解以下這幾個(gè)方面的內(nèi)容: 1:如何學(xué)習(xí) STM32 單片機(jī); 2:STM32 的開(kāi)發(fā)是用固件庫(kù),還是用直接操作寄存器;
    發(fā)表于 11-11 17:17 ?29次下載

    STM32 BSRR BRR ODR寄存器詳情解析

    BSRR 和 BRR 都是 STM32 系列 MCU 中 GPIO 的寄存器。 BSRR 稱(chēng)為端口位設(shè)置/清楚寄存器,BRR稱(chēng)為端口位**
    發(fā)表于 11-13 09:54 ?1.2w次閱讀

    STM32庫(kù)函數(shù)和寄存器應(yīng)該如何操作

    ,32系列寄存器無(wú)論是個(gè)數(shù)還是實(shí)現(xiàn)功能時(shí)多個(gè)寄存器之間的調(diào)用配合,使用難度都高了不少,所以有了庫(kù)函數(shù)和相應(yīng)的固件庫(kù)來(lái)減少難度。先說(shuō)一下
    發(fā)表于 09-10 17:26 ?3次下載
    <b class='flag-5'>STM32</b>庫(kù)函數(shù)和<b class='flag-5'>寄存器</b>應(yīng)該如何操作

    STM32四種庫(kù)對(duì)比:寄存器、標(biāo)準(zhǔn)外設(shè)庫(kù)、HAL、LL

    1.我是選擇寄存器開(kāi)發(fā)STM32,還是標(biāo)準(zhǔn)外設(shè)庫(kù)呢? 2.你有STM32L0標(biāo)準(zhǔn)外設(shè)庫(kù)嗎? 3.HAL庫(kù)
    發(fā)表于 03-05 06:17 ?50次下載
    <b class='flag-5'>STM32</b>四種<b class='flag-5'>庫(kù)</b>對(duì)比:<b class='flag-5'>寄存器</b>、標(biāo)準(zhǔn)外設(shè)<b class='flag-5'>庫(kù)</b>、HAL、LL

    STM32學(xué)習(xí)記錄——固件庫(kù)目錄及文件介紹

    工程,需要先準(zhǔn)備STM32芯片提供的庫(kù)函數(shù),包括啟動(dòng)的匯編文件,STM32寄存器宏定義,內(nèi)核以及外設(shè)的寄存器操作函數(shù)等,按照以下目錄結(jié)構(gòu)放置相應(yīng)ST
    發(fā)表于 12-02 13:06 ?13次下載
    <b class='flag-5'>STM32</b>學(xué)習(xí)記錄——<b class='flag-5'>固件</b><b class='flag-5'>庫(kù)</b>目錄及文件介紹

    STM32學(xué)習(xí)筆記(2)——寄存器

    。計(jì)算機(jī)領(lǐng)域,包括通用寄存器、專(zhuān)用寄存器和控制寄存器寄存器擁有非常高的讀寫(xiě)速度,所以在寄存器之間的數(shù)據(jù)傳送非???。我們一般控制其中的控制
    發(fā)表于 12-08 17:36 ?18次下載
    <b class='flag-5'>STM32</b>學(xué)習(xí)筆記(2)——<b class='flag-5'>寄存器</b>

    STM32的USART串口通信(指令控制RGB彩燈)

    這里寫(xiě)目錄標(biāo)題一、寄存器與基于固件庫(kù)stm32 LED流水燈的差異二、STM32的USART窗
    發(fā)表于 12-24 18:56 ?6次下載
    <b class='flag-5'>STM32</b>的USART串口通信(指令控制RGB彩燈)

    寄存器與靜態(tài)庫(kù)

    實(shí)現(xiàn)初始化時(shí)鐘LED燈初始化LED燈閃爍三、庫(kù)函數(shù)例程0.準(zhǔn)備階段1.目標(biāo)任務(wù)拆分2.目標(biāo)實(shí)現(xiàn)初始化時(shí)鐘LED燈初始化LED燈閃爍兩者比較前言讀者在學(xué)習(xí)8位單片機(jī)時(shí)是否經(jīng)歷過(guò)記憶大量寄存器的經(jīng)歷呢?在STM32中具有更多的寄存器
    發(fā)表于 01-13 12:43 ?3次下載
    <b class='flag-5'>寄存器</b>與靜態(tài)<b class='flag-5'>庫(kù)</b>