STM32實現一個簡單電燈

新建工程的步驟

  • 建立工程文件夾,Keil中新建工程,選擇型號
  • 工程文件夾里建立Start、Library、User等文件夾,復制固件庫里面
  • 的文件到工程文件夾
  • 工程里對應建立Start、Library、User等同名稱的分組,然后將文件
  • 夾內的文件添加到工程分組里
  • 工程選項,C/C++,IncludePaths內聲明所有包含頭文件的文件夾
  • 工程選項,C/C++,Define內定義USE_STDPERIPH_DRIVER
  • 工程選項,Debug,下拉列表選擇對應調試器,Settings,Flash
  • Download里勾選Reset and Run

下面來說一下具體步驟:

一、新建工程

使用庫函數的方式,需要準備一個STM32 庫函數的壓縮包

新建一個基于標準庫的工程

新建一個文件夾叫工程模板放本次項目

固件庫獲取:

https://pan.baidu.com/s/1bRC6MWtC7jxyKTCUmBCnRQ?pwd=v4tw

然后找到:

固件庫\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3

\DeviceSupport\ST\STM32F10x\startup\arm下的就是STM32的啟動文件

STM32程序就是從啟動文件開始執行的。

將這些文件都拷貝到工程模板中,但是這樣全放進去太亂了,可以新建一個文件夾叫start。

返回到STM32F10x目錄

stm32f10x.h 是用來描述STM32有哪些寄存器和他對應的地址的。

system_stm32f10x.csystem_stm32f10x.h 是用來配置時鐘的

STM32主頻72MHZ,就是system文件里的函數配置的。

將這三個文件復制下來也粘貼到start文件夾下。

這兩個cm3-(Cortex-M3)文件就是內核的寄存器描述.當然他還帶了一些內核的配置函數,所以多了個:c文件,我們把它倆一并復制下來也粘貼到start文件夾下。
到此為止工程的必要文件就復制完成了。

返回Keil軟件

雙擊start

點擊All files

選擇啟動文件

按住CTRl選擇這三個然后點擊Add

然后點擊close。

這個圖標代表只讀文件。

最后在工程選項里添加上這個文件夾的頭文件路徑,否則軟件找不到.h文件

點擊

添加main函數看工程是否可行。

進入工程模板文件夾,新建文件夾叫User.

右鍵添加組

改名為User

右鍵添加新文件

界面右擊

然后編寫一個main函數,這里注意main函數是一個int型返回值,void參數的函數。還有文件的最后一行必須要是空行,要不然會報警告。

#include "stm32f10x.h"                  // Device headerint main(void)
{while(1){}
}

點擊構建,編譯并建立工程

二、兩種電燈方法

寄存器

#include "stm32f10x.h"                  // Device headerint main(void)
{RCC->APB2ENR = 0x00000010;//打開GPIOC的時鐘GPIOC->CRH = 0x00300000;//GPIOC->ODR = 0x00000000;//亮GPIOC->ODR = 0x00002000;//滅while(1){}
} 

庫函數

新建庫文件夾

misc是內核的庫函數,其他的是內核外的外設庫函數。

全部復制到Library中。

這些是庫函數的頭文件件全部復制到Library中。

這三個復制到工程的User下。

宏定義方法:

滑到8296行

庫函數的工程建法:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/76491.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76491.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/76491.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

html5炫酷圖片懸停效果實現詳解

html5炫酷圖片懸停效果實現詳解 這里寫目錄標題 html5炫酷圖片懸停效果實現詳解項目介紹技術棧核心功能實現1. 頁面布局2. 圖片容器樣式3. 炫酷懸停效果縮放效果傾斜效果模糊效果旋轉效果 4. 懸停文字效果5. 性能優化6. 響應式設計 項目亮點總結 項目介紹 本文將詳細介紹如何使…

Playwright與Browser Use:領略AI賦能UI自動化測試的魔法魅力

目錄 Browser Use是什么? Playwright簡介 框架設計的核心目標與原則 Playwright 在 UI 自動化測試中的優勢 如何高效攔截錯誤 實現視頻錄制 UI自動化框架設計的挑戰 測試框架的結構與模塊化設計 自動化測試不是銀彈 走進Browser Use 橫空出世的背景與意義…

Uniapp 實現微信小程序滑動面板功能詳解

文章目錄 前言一、功能概述二、實現思路三、代碼實現總結 前言 Uniapp 實現微信小程序滑動面板功能詳解 一、功能概述 滑動面板是移動端常見的交互組件,通常用于在頁面底部展開內容面板。本文將介紹如何使用 Uniapp 開發一個支持手勢滑動的底部面板組件&#xff0…

【FAQ】HarmonyOS SDK 閉源開放能力 —Push Kit(12)

1.問題描述: pushdeviceid的長度是固定的嗎? 解決方案: 在鴻蒙系統中,設備ID的長度是固定的。 2.問題描述: 通過REST API三方推送IM類消息,如何實現應用處于前臺時不展示三方推送通知。 解決方案&…

【小兔鮮】day02 Pinia、項目起步、Layout

【小兔鮮】day02 Pinia、項目起步、Layout 1. Pinia2. 添加Pinia到Vue項目3. 案例:Pinia-counter基礎使用3.1 Store 是什么?3.2 應該在什么時候使用 Store? 4. Pinia-getters和異步action4.1 getters4.2 action如何實現異步 1. Pinia Pinia 是 Vue 的專…

Android學習之計算器app(java + 詳細注釋 + 源碼)

運行結果: 基礎的四則運算: 可能會出現的問題以及解決方法: 問題1:出現多個操作符。 例子:12 解決方法: 在用戶點擊操作符之后,去檢查之前的最后一位,如果最后一位也是操作符的話…

GMap.NET + WPF:構建高性能 ADS-B 航空器追蹤平臺

ADS-B 簡介 ADS - B(Automatic Dependent Surveillance - Broadcast,廣播式自動相關監視)是一種先進的航空監視技術。它依靠飛機上的機載設備,自動收集諸如飛機的位置、高度、速度、航向等關鍵數據,并周期性地以廣播的…

關于testng.xml無法找到類的問題

問題:testng.xml添加測試類的時候飄紅 解決辦法: 1.試圖通過自動生成testng.xml插件去解決,感覺也不是這個問題,沒有嘗試; 2.以為是創建包的方式不對,重新刪除后新建--還是找不到 想新建類的時候發現從m…

數據在內存中存儲(C語言)

文章目錄 前言一、整數在內存中的存儲1.1 計算機存儲數據的基本單位示例代碼 1.2 無符號整數的存儲1.3 有符號整數的存儲(補碼)示例代碼 二、大小端字節序和字節序判斷2.1 什么是大小端?示例代碼 2.2 為什么會有大小端?2.3 字節序…

Python爬蟲第2節-網頁基礎和爬蟲基本原理

目錄 一、網頁基礎 1.1 網頁的組成 1.2 網頁的結構 1.3 節點樹及節點間的關系 1.4 選擇器 二、爬蟲的基本原理 2.1 爬蟲概述 2.2 能抓怎樣的數據 2.3 JavaScript 渲染頁面 一、網頁基礎 使用瀏覽器訪問網站時,我們會看到各式各樣的頁面。你是否思考過&…

python-leetcode 64.在排序數組中查找元素的第一個和最后一個位置

題目: 給一個按照非遞減順序排列的整數數組nums,和一個目標值target,請找出給定目標值在數組中的開始位置和結束位置。 如果數組中不存在目標值target,返回[-1,-1] 方法一:二分查找 直觀的思路肯定是從前往后遍歷一遍。用兩個變量記錄第一次和最后一次…

分享一些新版GPT-4o使用方式!能多模態生圖!

目前GPT-4o的整體測評,真的很驚艷。 不知道又有多少人因為OpenAI的這次更新而失業,當然只要AI用得好,會有更多人因之而受益!很多人表示不知道怎么用,對于門外漢來說,4o似乎有點高端。 今天就給大家介紹幾…

軟件工程面試題(二十四)

1、連接池的原理 j2ee 服務器啟動時會建立一定數量的池連接,并一直維持不少于此數量的池連接。當客戶端程序需要連接時,吃驅動程序會返回一個未使用的池連接并將其標記為忙。如果當前 沒有空閑連接,池驅動就建立一定新的 連接 2、用javascript編寫腳本小程序,實現點擊全選…

Android:Dialog的使用詳解

Android中Dialog的使用詳解 Dialog(對話框)是Android中常用的UI組件,用于臨時顯示重要信息或獲取用戶輸入。 1. 基本Dialog類型 1.1 AlertDialog(警告對話框) 最常用的對話框類型,可以設置標題、消息、…

arinc818 fpga單色圖像傳輸ip

arinc818協議支持的常用線速率如下圖 隨著圖像分辨率的提高,單lane的速率無法滿足特定需求,一種方式是通過多個LANE交叉的去傳輸圖像,另外一種是通過降低圖像的帶寬,即通過只傳單色圖像達到對應的效果 程序架構如下圖所示&#x…

透視投影(Perspective projection)與等距圓柱投影(Equirectangular projection)

一、透視投影 1.方法概述 Perspective projection(透視投影)是一種模擬人眼觀察三維空間物體時的視覺效果的投影方法。它通過模擬觀察者從一個特定視點觀察三維場景的方式來創建二維圖像。在透視投影中,遠處的物體看起來比近處的物體小&…

三.微服務架構中的精妙設計:服務注冊/服務發現-Eureka

一.使用注冊中心背景 1.1服務遠程調用問題 服務之間遠程調?時, 我們的URL是寫死的 String url "http://127.0.0.1:9090/product/" orderInfo.getProductId(); 缺點: 當更換機器, 或者新增機器時, 這個URL就需要跟著變更, 就需要去通知所有的相關服…

FPGA實現4K MIPI視頻解碼H265壓縮網絡推流輸出,基于IMX317+VCU架構,支持4K60幀,提供工程源碼和技術支持

目錄 1、前言工程概述免責聲明 2、相關方案推薦我已有的所有工程源碼總目錄----方便你快速找到自己喜歡的項目我這里已有的 MIPI 編解碼方案我這里已有的視頻圖像編解碼方案 3、詳細設計方案設計框圖FPGA開發板IMX317攝像頭MIPI D-PHYMIPI CSI-2 RX Subsystem圖像預處理Sensor …

Ollama+open-webui搭建私有本地大模型詳細教程

Ollamaopen-webui搭建私有本地大模型詳細教程 1. 什么是 Ollama? 1.1. Ollama 簡介 ? Ollama 是一個輕量級的 AI 模型運行時,專注于簡化 AI 模型的部署和使用。它支持多種預訓練模型(如 Llama、Vicuna、Dolly 等),…

解決Centos7集成IDEA報git版本太低問題

Centos 7 服務器上默認安裝的 Git 是 1.8.3.1 版本的 與最新的IDEA已無法匹配,需要更新 首先,卸載老版本 sudo yum -y remove git sudo yum -y remove git-*添加 End Point 到 CentOS 7 倉庫 sudo yum -y install https://packages.endpointdev.com/r…