STM32F0xx_GPIO配置詳細過程
前言
對於初學STM32的人來說,很多基礎的知識沒有掌握,這些基礎知識就成為阻擋他們入門的門檻。因此,今天也把基礎的知識分享出來,帶領那些還沒有邁過這個門檻的人入門。
今天總結“GPIO配置詳細”,以F0標準外設庫初始化結構體來重點講解。接著昨天“新建軟體工程詳細過程”來進行講解,今天分兩大部分內容總結。工程描述、IO配置原始碼詳細講解。
本著免費分享的原則,如果你覺得分享內容對你有用,請關注微信公眾號“EmbeddDeveloper”還有更多精彩內容等著你。
下載
ST標準外設庫和參考手冊、資料手冊等都可以在ST官網下載的到(請自行下載)。關於F0系列晶片的參考手冊有多個版本(針對F0不同晶片),但有一個通用版本,就是“STM32F0x128參考手冊V8(英文)2015-07
今天提供下載的軟體工程其實和昨天差不多,只是多了IO配置的中文註釋,方便了解。
今天的軟體工程下載地址(360雲盤):
STM32F0xx的資料可以在我360雲盤下載:
工程描述
①資料夾描述
針對初學者描述一下工程的基本資訊。解壓軟體工程包,開啟就看到如下圖檔案,紅色框出來的部分主要是用於軟體工程裡面的原始碼檔案。
App: 應用部分程式碼(如我們寫的一些應用檔案)
Bsp: 底層程式碼(如底層驅動檔案)
Doc: 文件(這裡新增一些對工程的描述)
Libraries: 標準庫(提取標準外設庫)
Listings: 編譯生成列表檔案
Objects: 編譯生成目標檔案
GPIO:這兩個檔案是工程檔案
刪除編譯產生垃圾檔案:需要打包整個工程的時候,雙擊這個檔案可刪除不需要的檔案(如上面兩個資料夾Listings和Objects下的檔案)。
②結構描述
當我們用MDK-ARM軟體直接開啟軟體工程,就可以看到下圖所示的結構,將資料夾的“Libraries”分為三項,如下圖:
原始碼詳情
①RCC時鐘
該函式位於bsp.c檔案下面;
我個人習慣第一步配置時鐘,ST官方提供的例程也是把配置時鐘放在前面。
為了防止大家修改來使用其他埠而忘記配置RCC,這裡將F0常用的幾個埠都配置上(實際應該使用那些端口才配置)。
②IO配置
該函式位於bsp.c檔案下面;
這裡的配置就是對一個“輸入輸出IO”的初始化配置,也就是對結構體“GPIO_InitStructure”進行初始化。這裡面主要就是對那其中的五個引數初始化。
關於結構體“GPIO_InitTypeDef”詳情可以Go To Definition...或者選中“GPIO_InitTypeDef”、按下F12,跳轉到定義關於“GPIO_InitTypeDef”的定義,詳情請看下面③的講解。
③GPIO_InitTypeDef詳情
引數1:GPIO_Pin引腳:GPIO_Pin_0 - GPIO_Pin_15
引數2:GPIO_Mode模式: 輸入GPIO_Mode_IN、輸出GPIO_Mode_OUT、GPIO_Mode_AF複用功能、GPIO_Mode_AN模擬功能
引數3:GPIO_Speed速度: 低速GPIO_Speed_2MHz、中速GPIO_Speed_10MHz、高速GPIO_Speed_50MHz
引數4:GPIO_OType輸出型別(只對輸出起作用):推完輸出GPIO_OType_PP、漏極輸出GPIO_OType_OD
引數5:GPIO_PuPd上下拉: 浮空GPIO_PuPd_NOPULL、上拉GPIO_PuPd_UP、下拉GPIO_PuPd_DOWN
說明
STM32F0的晶片軟體相容性很好,可以適用於F0的很多晶片(具體請看手冊、或者親自嘗試)。
最後
如果你喜歡我分享的內容,你又想了解更多相關內容,請關注文章開頭的微信公眾號,新內容持續更新中,後期將會有更多精彩內容出現。
相關推薦
STM32F0xx_GPIO配置詳細過程
前言 對於初學STM32的人來說,很多基礎的知識沒有掌握,這些基礎知識就成為阻擋他們入門的門檻。因此,今天也把基礎的知識分享出來,帶領那些還沒有邁過這個門檻的人入門。 今天總結“GPIO配置詳細”,以F0標準外設庫初始化結構體來重點講解。接著昨天“新建軟體工程詳細過程”來進
OpenCV3.4.2+VS2015安裝配置詳細過程
環境配置 本文是OpenCV3.4.2 在VS2015下的配置過程,用的是WIN10系統 基於opencv的配置有兩種 一是靜態的配置 二是用CMake的動態連結庫配置 OpenCV3.4.2官方下載 8月29日已更新至3.4.2版
Ubuntu下redis資料庫的安裝和配置詳細過程
Redis 安裝 當前redis最新穩定版本是4.0.9 tar xzf redis-4.0.9.tar.gz step3:移動,放到usr/local目錄下 sudo mv ./redis-4.0.9 /usr/local/redi
STM32F0xx_DAC輸出電壓配置詳細過程
前言 數模轉換DAC的功能在現實應用中所佔的分量,相對定時器TIM、串列埠USART等要小的多,這也是ST為什麼內部整合DAC模組相對來說不是那麼多的原因。但在有需要使用數模轉換功能的專案中,自帶的這個DAC模組基本上可以取代外掛一片DAC晶片,因為自帶的這個模組功能也很強
STM32F0xx_看門狗(獨立+視窗)配置詳細過程
Ⅰ、概述 對於看門狗,我覺得做微控制器或者嵌入式開發的人員來說並不陌生,今天總結STM32F0看門狗的功能,F0的看門狗有兩種:獨立和視窗看門狗。 今天提供兩種看門狗的軟體工程例項,供大家下載。 兩種看門狗各有各的特點,應用在不同的場合,下面將分別簡單總結一下獨立和視窗看門
STM32F0xx_RTC實時時鐘配置詳細過程
Ⅰ、概述 今天總結RTC(Real Time Clock)實時時鐘相關的知識,順帶將BKP簡單總結一下。 STM32的RTC模組和時鐘配置系統(RCC_BDCR暫存器)處於後備區域,即在系統復位或從待機模式喚醒後, RTC的設定和時間維持不變。 STM32F0的RTC模組和
Mac配置Hadoop最詳細過程
pan alt agen mage 設置 apach 兩個 login class 一.準備工作: 1. JDK1.7版本及以上(貌似Hadoop只支持1.6以上的版本,不確定,保險起見用1.7,我自己用的是1.8) 2. 2.7.3版本的Hadoop https://
ubuntu16.04上安裝配置DHCP服務的詳細過程
exists sys support asi running 存在 type enca maintain DHCP服務器是為客戶端機器分配IP地址的,所有分配的IP地址都保存在DHCP服務器的數據庫中。為了在子網中實現DHCP分配IP地址,需要在目標主機上安裝配置DHCP服
docker安裝配置gitlab詳細過程 docker安裝配置gitlab詳細過程
docker安裝配置gitlab詳細過程 獲取映象 1、方法一 1
centos安裝配置hadoop超詳細過程【轉】
轉自:http://www.centoscn.com/image-text/install/2014/1121/4158.html 1、叢集部署介紹 1.1 Hadoop簡介 Hadoop是Apache軟體基金會旗下的一個開源分散式計算平臺。以Hadoop分散式檔案系統
Ubuntu16.04 安裝 CUDA、CUDNN、OpenCV 並用 Anaconda 配置 Tensorflow 和 Caffe 詳細過程
1.配置環境 2.安裝顯示卡驅動、CUDA 和 CUDNN 在Ubuntu系統中的 System Settings -> Software & Updates -> Additional Drivers 安裝相應的顯示卡和C
vue配置全域性less變數/方法 詳細過程
核心:sass-resources-loader元件 實現過程如下: 1.安裝 npm i sass-resources-loader -S 2.修改配置檔案build/utils.js 2.1 在cssLoaders中新增如下程式碼: // 全域性less變
docker安裝配置gitlab詳細過程
com 帳戶 mkdir -p lpad start 臨時 一段 resp oot 獲取鏡像 1、方法一 1 docker pull beginor/gitlab-ce:11.0.1-ce.0 2、方法二如果服務器網路不好或者pul
Nginx下配置Https證書詳細過程
一、Http與Https的區別HTTP:是網際網路上應用最為廣泛的一種網路協議,是一個客戶端和伺服器端請求和應答的標準(TCP),用於從WWW伺服器傳輸超文字到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少。HTTPS:是以安全為目標的HTTP通道,簡單講是HT
centos安裝配置hadoop超詳細過程
1、叢集部署介紹 1.1 Hadoop簡介 Hadoop是Apache軟體基金會旗下的一個開源分散式計算平臺。以Hadoop分散式檔案系統(HDFS,Hadoop Distributed Filesystem)和MapRedu
Webpack安裝配置及打包詳細過程
引言 前端經過漫長的發展,湧現出了很多實踐方法來處理複雜的工作流程,讓開發變得更加簡便,其中,模組化可以使複雜的程式細化成為各個小的檔案,而webpack並不強制你使用某種模組化方案,而是通過相容所有模組化方案讓你無痛接入專案,本文詳細介紹webpack安裝配置及打包的詳細過程。 Webpack簡單介紹
redis配置詳細解析
keep turn name sort out 配置文件 trac lte eid # redis 配置文件示例 # 當你需要為某個配置項指定內存大小的時候,必須要帶上單位, # 通常的格式就是 1k 5gb 4m 等: # # 1k => 1000 bytes
linux環境下部署zabbix3.2、模板、郵件告警詳細過程
-1 ice erer without zlib zip ever native item 服務端部署: 系統環境及軟件版本: Linux:release 6.3 zabbix:zabbix-3.2.5.tar.gz nginx:nginx-1.12.0.tar.gz ph
Mysql安裝詳細過程,tar方式
mysql安裝1、創建mysql用戶和mysql用戶組 groupadd mysql useradd -r -g mysql mysql2、 到我的共享網盤下載mysql-5.7.17程序包 鏈接:http://pan.baidu.com/s/1gfAA87p 密碼:iuti3、拷貝下
centos網卡配置詳細說明
上網 網卡配置文件 還原 服務器 star 網卡配置 mac地址 -s stat 利用工具連接系統,進入根目錄 設置臨時網卡IP、網關、DNS 1:臨時修改:1.1:修改IP地址# ifconfig eth0 192.168.100.100 1.2:修改網關地址# ro