娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

要用STM32實現什么?為什么使用STM32而不是8051?

發布者:yuehui最新更新時間:2024-09-29 來源: elecfans關鍵字:STM32  頻率 手機看文章 掃描二維碼
隨時隨地手機看文章

單片機用處這么廣,尤其是STM32生態這么火!如何快速上手學習呢?

你要考慮的是,要用STM32實現什么

為什么使用STM32而不是8051? 是因為51的頻率太低,無法滿足計算需求?是51的管腳太少,無法滿足眾多外設的IO? 是51的功耗太大,電池挺不?。渴?1的功能太弱,而你要使用SPI、I2C、ADC、DMA? 是51的內存太小而你要存儲的東西太多?


當你需要使用STM32某些功能,而51實現不了的時候,那STM32自然不需要學習,你會直接去尋找STM32某方面的使用方法。比如要用spi協議的網卡、要使用串口通信、要使用rtos等等。寄存器vs庫函數 我的觀點是:當你debug的時候寄存器很重要,當你需要理解芯片工作細節的時候寄存器很重要,當你開發的時候寄存器不重要。如果你沒有遇到非直接配置寄存器不可的情況,那么就不要直接面向寄存器層面開發, 因為面向寄存器開發獲得的好處往往抵消不掉這樣做的壞處。面向寄存器開發程序效率高,但是你需要為了提高0.01%的效率浪費10倍、乃至100倍的時間。既然ST公司已經給你提供了好用的庫,沒有道理要重新造輪子。


什么時候需要通過寄存器開發

第一、某一個代碼塊調用非常頻繁。比如你有一個巨大的for循環,那么這個for循環中的每一步操作都應該被謹慎的優化,優化良好就可以獲得更好的性能。這種情況一般常見于圖像處理相關的代碼中。


第二、庫函數有bug。這個遇到的概率非常低,但確實存在。不過一般來說如果mcu表現出預料之外的行為, 你首先要想的應該是你的代碼寫的有bug,而不是庫函數有bug。如果庫函數真的有bug,你去google搜一下,相信你絕對不是第一個踩坑的人。 對于傳統的電子工程師來講,使用庫編程可能會感到有一點虛,感覺沒有腳踏實地的感覺。但如果你寫過web、寫過服務器端代碼、寫過桌面端代碼的話,你就一定會理解API、封裝、抽象的意義。


對于如何學習STM32這個話題,來看看老司機們的看法icecut:1. 使用STM32是因為功能比avr好,各種資源比較多。所以選STM32F103,那時候芯片還沒這么多,還是用寄存器開發的時代。 2. 后來F103的開發板越來越多,切換成使用官方庫的確大大提高了生產力,底層不用學的太好也可以開發了。 3.ST在力推stmcubemx,此軟件會根據你的配置和芯片來生成輕量級的代碼。代碼量小很多,并且軟件上有freertos以及閉源的 ui 庫的支持。 4. ST芯片的遍地開花,軟件上配合 stm32cubeMx 的開發利器可以大大縮短調試的工作量。 5. 最近在做互聯網開發,有時候還是手癢癢,還想弄ST的芯片玩玩。


菜鳥同學:單片機本身沒啥好折騰的,重點還是軟件架構,針對項目設計軟件,深度研究一種單片機。 其他單片機都大同小異,大多數菜鳥都把時間荒廢在單片機本身應用上,然后會幾個外設就說很簡單,都認為很簡單,但是大部分都是半瓶水。


lxyppc:剛開始發現一款比較有意思的產品,主控用的是avr,把里面的代碼反編譯之后就想抄了,仔細想想要是還用avr很快也會被別人給抄去,這個時候發現了stm32這個片子,還帶USB,于是乎就把反編譯出來的代碼移植到了stm32上,把通信接口由uart改成USB。


江楓漁火:花一個星期或者更多時間熟悉芯片很正常。每個芯片公司的芯片還是有風格和使用上的差異。實際用一個不曾慣用的芯片的時候,都是對著數據手冊上寄存器寫的。 我之前沒怎么用STM32開發過東西,之前用ATMEL的芯片,用的寄存器操作方式,但我可以將用寄存器寫的功能進行封裝成函數或模塊。


冰零分子:1.首先了解下芯片架構,看看這個芯片都能干什么事 2.然后跟視頻或教程通看一遍,了解下實現一個功能大致需要的步驟 3.其次選一個項目直接實踐,只要知道大致步驟,庫函數配置網上一搜一大把 4.做項目時會遇到各種問題,這就是提高的一個過程,項目做完后就熟悉了。


外設配置弈涯:剛開始接觸STM32時還在學校,有很多時間,當時就用寄存器將提供的所有例程,自己重新對照著DataSheet敲一次,根據自己的想法做一些改變。C語言、編程思想、STM32都有了較大的進步?,F在在單位也在做STM32的編程,不過都不用寄存器了,但是感覺之前敲的例程還是對現在的工作有了很大的幫助。覺得吧,還是得多動手,基礎的東西還是得自己去完整的過一遍。


Larm1:1. 剛開始使用寄存器配置時,感覺要看的文檔,花的時間確實比較多 2. 后來官方推出了固件庫,剛開始使用的時候感覺又不踏實,后來發現很不錯 3. 現在都是直接找官網的相關功能外設代碼直接測試、調試,不懂得才去看文檔。

shizaigaole:和學其他單片機一樣: 1. 買一塊開發版,熟悉編譯,下載環境 2. 寫個跑馬燈,自己感受一下 3. 把STM32的中斷,尤其是定時中斷搞清楚 4. 作為硬件應用來說,一定還要仔細看看IO管角相關電氣方面的參數,到這一步就基本入門了。 但是要熟練使用STM32,還要踏踏實實的把stm32的文檔手冊讀一遍。 然后學習編譯器自帶的例程,把這些例程精簡以后移植到自己的開發版上去跑一跑。 其實做幾個模塊后,就基本熟悉了,以后可以試著去啃手冊和例程。

zai:說白了三句話: 1.熟悉編譯下載環境 2.啃手冊 3.研習官方例程。

feilusia:這是我自己的學習路線: 1、51學習寄存器操作 2、stm8學習寄存器和庫操作 3、stm32學習寄存器和庫操作 4、CC2541學習協議棧 5、安卓入門學習 6、安卓藍牙學習。

ywlzh:初學STM32第一步,就是點亮個燈。 有人點亮就完了,有人繼續深究為什么會點亮。 有人是走個過場,有人能舉一反三。


關鍵字:STM32  頻率 引用地址:要用STM32實現什么?為什么使用STM32而不是8051?

上一篇:STM32自學筆記 零死角玩轉STM32
下一篇:STM32CubeProgrammer和STM32CubeMonitor的新功能

推薦閱讀最新更新時間:2025-06-07 23:45

STM32的PWM輸出及頻率和脈寬(占空比)的計算
一、stm32的pwm輸出引腳是使用的IO口的復用功能。 二、T2~T5這4個通用定時器均可輸出4路PWM CH1~CH4。 三、我們以tim3的CH1路pwm輸出為例來進行圖文講解(其它類似),并在最后給出tim3的ch1和ch2兩路pwm輸出的c代碼(已在STM32F103RBT6上測試成功,大家放心使用?。?。 四、給出了PWM頻率和占空比的計算公式。 步驟如下: 1、使能TIM3時鐘 RCC- APB1ENR |= 1 1; 2、配置對應引腳(PA6)的復用輸出功能 GPIOA- CRL &= 0XF0FFFFFF;//PA6清0 GPIOA- CRL |= 0X0B000000;//復用功能輸出(推挽
[單片機]
藍橋杯STC15單片機復習——IO口的使用
前言 引腳圖 點燈測試 由引腳圖可以看出,STC15的外設資源與51單片機基本一致,常用的也是三組四組IO口(P0、P1、P2、P3),由于板子的電路設計,通過74LS138譯碼器進行P0的外掛模塊的選擇。 其中當P25 = 0、P26=0、P27=1;即選通Y4時,外掛的模塊為LED燈,下面就開始點幾個燈玩玩吧。 /* 彭某的藍橋杯復習——LED 1、點亮一盞LED并閃爍 */ #include STC15F2K60S2.h #define uint unsigned int #define uchar unsigned char void ALL_Init(); void delay_
[單片機]
藍橋杯STC15單片機復習——<font color='red'>IO</font>口的使用
【51單片機快速入門指南】2.3:GPIO讀取矩陣鍵盤 8個IO讀16鍵
普中51-單核-A2 STC89C52 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知識 選自《普中51單片機開發攻略_V1.2》 矩陣鍵盤介紹 獨立按鍵與單片機連接時,每一個按鍵都需要單片機的一個 I/O 口,若某單片機系統需較多按鍵,如果用獨立按鍵便會占用過多的 I/O 口資源。單片機系統中 I/O 口資源往往比較寶貴,當用到多個按鍵時為了減少 I/O 口引腳,便引入了矩陣按鍵。 以 4x4 矩陣鍵盤為例講解其工作原理和檢測方法。開發板上將 16 個按 鍵排成 4 行 4 列,第一行將每個按鍵的一端連接在一起構成行線
[單片機]
【51單片機快速入門指南】2.3:GPIO讀取矩陣鍵盤 8個<font color='red'>IO</font>讀16鍵
MSP430單片機IO面面觀
一、MSP430單片機的端口概述 P1~P6每組有8個I/O 口,P3、P4、P5、P6具有I/O及其它片內外設功能,每組具有4個寄存器。P1、P2除具有上述功能外還具有中斷能力,每組具有7個寄存器。 二、Px端口 1. P1、P2端口 (1)PxDIR 輸入/輸出方向寄存器(x代表1,2) 相互獨立的八位分別定義了Px7~Px0,8個引腳的輸入輸出方向。 0 輸入模式,只能讀。 1 輸出模式,可讀可寫。 8位在PUC后都被復位及置為0。 Eg:P1DIR = 0x0F; 這里,0x0F為16進制表示,對應的二進制為0000 1111,即將P1DIR的高4位置0,低4位置1,也就是將P1.7
[單片機]
STM8S利用STVP方式進行IO復用分析
1 說明 STM8S的IO復用用程序代碼配置起來比較麻煩,一般是操作flash來操作opTIon byte字節,配置寄存器更加麻煩,可以使用STM 標準外設驅動庫來設置。本文使用一種界面配置的方式來配置IO復用管腳,即使用STVP來配置。 因為FLASH保存的數據是掉電不丟失的,先用STVP把OpTIon Bytes擦寫好后,再用STVD仿真器燒寫程序就可實現IO復用了。 程序方式配置IO復用見這里 2 配置流程 【step1】打開STVP軟件 【step2】打開我們需要下載的xxx.s19文件,CTRL+F5(File-》Ram Exec) 【step3】配置需要復用的引腳 IO口的復用功能主要配置在于AFR0-A
[單片機]
STM8S利用STVP方式進行<font color='red'>IO</font>復用分析
51單片機之IO口擴展
我們都知道通信從大的方面有兩種:串行和并行。串行的最大優點是占用總線少,但是傳輸速率低;并行恰恰相反,占用總線多,傳輸速率高。市面上有很多這樣的芯片,有串入并出的(通俗講就是 一個一個進,最后一塊出來),有并入串出的(相對前者而言)。具體用哪種類型要根據我們得實際情況。比如利用單片機顯示數碼管單純的顯示一個數碼管如果僅僅是為了顯示 那么動用單片機一個端口(如P0或P1/P2/P3)那沒有什么,當然這里我說的數碼管是8段的(如果利用BCD類型 16進制數碼管那么只需四個即可)就拿51類型的單片機來說,總共32個I/O口,一般如果不是做太大的工程是完全夠用的,但有些時候你會恨單片機怎么不多長幾條“腿”,怎么省還是不夠用。這個時候就需要
[單片機]
51單片機之<font color='red'>IO</font>口擴展
430 IO上下拉電阻
上下拉是否開啟是否REN寄存器決定的,而上拉還是下拉是由OUT寄存器決定的,在作為輸出時,隨著OUT的高低,自動選擇上下拉,作為輸入的時候,我們也可以人為的付OUT寄存器來得到上下拉。 PxREN寄存器控制拉電阻是否啟用,而PxOUT決定了拉電阻是上拉還是下拉,具體的工作原理是這樣的 #include msp430g2553.h voidmain() { WDTCTL=WDTPW+WDTHOLD; P1DIR=0x0001; P1REN=BIT3; //輸入 P1OUT=BIT3; //上拉 while(1) { if(P1IN&BIT3) P1OUT|=BIT0; else P1OUT&=~BIT0; }
[單片機]
430 <font color='red'>IO</font>上下拉電阻
關于MSP430 IO作為輸入時內置拉電阻的問題
單片機:MSP430g2553評估板 軟件:IAR 問題:用msp430單片機掃描按鍵時是否要加上下拉電阻。 描述:最近筆者在學TI公司的msp430單片機時要測試板載的按鍵,但是發現IO外面沒有加上拉電阻,當我代碼控制P1.3為輸入時,IO表現為高阻狀態,將手在IO上就能改變IO的電位,我很自然的想到應該在IO上外加上拉電阻,但是反過來想,為什么TI公司設計這板子的時候沒有加上上拉電阻那?難道要讓我們自己加?不科學!于是我到網上搜相關問題,很多人都是另外加電阻的,難道我想多了?突然我看到一篇博客,下面是該博客的內容: 今天幫助一個人測試msp430f2002,他又提出了這樣的要求,輸入,msp430內部上拉,我又習慣性的說,不行
[單片機]
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 富裕县| 常德市| 贵州省| 新乡县| 寿宁县| 饶阳县| 酒泉市| 股票| 同德县| 丹棱县| 临夏市| 溧阳市| 武陟县| 寻乌县| 淮北市| 桃园县| 景德镇市| 宣城市| 张家川| 桃园市| 巨鹿县| 麻阳| 定远县| 山东| 米易县| 南川市| 德兴市| 芜湖市| 洪雅县| 大余县| 休宁县| 子洲县| 青河县| 安仁县| 罗山县| 万安县| 敦煌市| 星子县| 沁水县| 景谷| 炎陵县|