国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32CubeIDE + HAL + STM32f103C8T6 系列教程1 ---板載PC13LED閃爍

這篇具有很好參考價值的文章主要介紹了STM32CubeIDE + HAL + STM32f103C8T6 系列教程1 ---板載PC13LED閃爍。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

引言

之前的系列教程都是基于Arduino的,但是公司招聘51和stm32的開發(fā)還是多些,所以特別開了一個stm32的系列。這個系列特點(diǎn)是注重了Arduino編程思維和習(xí)慣下向STM32開發(fā)的過渡。前期沒有涉及到太多寄存器相關(guān)的知識,利用HAL庫和STM32CubeIDE快速入手STM32的數(shù)字輸入/輸出、模擬輸入/輸出及相關(guān)簡單的項(xiàng)目應(yīng)用,計劃每個小的項(xiàng)目滲透一點(diǎn)相關(guān)的寄存器知識,潛移默化的過渡到底層硬件開發(fā)。并選用了麻雀雖小但五臟俱全且價格及其親民的十元左右的BULLPILL(STM32f103C8T6)。之前Arduino實(shí)驗(yàn)中用的外接器件也都可以用到本教程中。從學(xué)習(xí)難度和硬件購買兩方面大大降低了學(xué)習(xí)門檻。

硬件

  • STM32f103C8T6 (BULLPILL) *1塊 ----- 未焊引腳十元左右
    stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫
  • STLINK V2 *1 ----- 10元左右1
    stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

關(guān)于開發(fā)板2

控制器

芯片 STM32F103C8T6
制造商 ST-Microelectronics
內(nèi)核 Arm Cortex-M3
最高時鐘頻率 72MHz
封裝 LQFP48pins

內(nèi)置存儲器

FLASH 64KB
SRAM 20KB

Tips:
1.下圖所示的5V引腳和USB口的5V在電路板中是直接連在一起的,他們之間沒有任何保護(hù)電路,所以不要對USB和5V同時供電。
The +5V pins on this board are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time.
stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫
2.有時候板子的D+引腳的讀數(shù)不對,造成這個的原因可能是其連接的電阻阻值不對,更換為1.5KΩ即可。
This board may have a wrong value of resistor on the USB D+ pin. Instead of a 1.5kΩ it has either a 10kΩ or 4.7kΩ resistor. This can be solved by replacing the resistor with the right value.
3.這個板子名稱源于論壇,靈感來自《駭客帝國》
This board got its name from a forum post at the STM32duino forums and is a reference to the movie The Matrix

原理圖

stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

硬件連線

硬件連接表

STM32 STLINK V2
3.3V 3.3V
SWDIO SWDIO
SWCLK SWCLK
GND GND

硬件連線圖

stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

軟件

之前做STM32的開發(fā)使用的STM32CubeMX+Keil5的方式,其中比較不方便的部分就是Keil其實(shí)是需要破解的。開發(fā)過程會分段,感覺對新手還是不太友好。前幾天看到一個博主做了STM32CubeIDE的教程,照著試了下,直呼真香。手里隨便一塊板子很快就能實(shí)現(xiàn)版在等閃爍。簡單、直接、免費(fèi)~ 而且代碼開發(fā)還支持代碼自動補(bǔ)全~ 再次感嘆真香~ 哈哈哈。據(jù)說支持第三方插件。
stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

STM32CubeIDE下載及安裝

下面這個帖子寫的很詳細(xì),這個部分沒什么難度所以不重復(fù)寫了。
STM32CubeIDE下載安裝教程: 3

Stm32CubeIDE設(shè)置補(bǔ)全快捷鍵和主題

Stm32CubeIDE設(shè)置補(bǔ)全快捷鍵和主題:4
https://blog.csdn.net/u014627020/article/details/117444089

新建一個工程

  • "File"—>"new"—>"STM32Project"
    stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

選擇開發(fā)板核心芯片型號

第一步:選擇”STM32103C8T6“
第二步:在右下方的表格中選中相應(yīng)的型號
第三步:點(diǎn)擊”next“
stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

設(shè)置工程相關(guān)參數(shù)

stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫
stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

STM32CubeMX配置

  • 在顯示的芯片圖中,鼠標(biāo)左鍵點(diǎn)擊"PC13"引腳。在彈出的菜單中選擇"GPIO_OutPut"。這時引腳就會變成綠色。
    stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫
  • 生成工程代碼
    "Project"—>"Generate Code"
    stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫
    在彈出的對畫框中點(diǎn)擊就"Yes",稍等就可以自動生成全部工程代碼。(要知道在07、08年的時候,一個工程文件的建立難倒多少英雄漢呀?!,F(xiàn)在竟然這么便捷了
    stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

板載燈PC13LED閃爍代碼

STM32程序和Arduino代碼對比

代碼大致結(jié)構(gòu)對比

打開的代碼中可以看大main.c文件中64-99行其實(shí)是主函數(shù)的入口。其中如圖所示,是上面的部分相當(dāng)于Arduino中的SetUp,下面的部分相當(dāng)于Arduino中的loop。因?yàn)橐呀?jīng)在上面的cubeMx中配置好了引腳的狀態(tài)。所以和Arduino中不同,此處就不需要在SetUp中添加PinMode(D4,OutPut)這樣的語句了。那么控制燈閃爍的代碼添加在下面這個while(1)中就可以了其實(shí)根據(jù)c語言中所學(xué)的基礎(chǔ),我們可以知道while(1)本身就是條件永遠(yuǎn)為true的死循環(huán)。它一定是一直執(zhí)行的.

stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

庫函數(shù)調(diào)用對比

Arduino:digitalWrite(D4, HIGH);
STM32: HAL_GPIO_WritePin(GPIOA, GPIO_PIN_13, GPIO_PIN_SET);

  • 函數(shù)名不同
  • 函數(shù)傳參不同
    本實(shí)例中板載燈為PC13,所以第一個參數(shù)應(yīng)該為GPIOC,第二個參數(shù)為13,第三個參數(shù)為1.完整寫出來就是

HAL_GPIO_WritePin`(GPIOC, GPIO_PIN_13, 1);

stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

  • 同理如果是PA4引腳代碼就應(yīng)該替換為:

HAL_GPIO_WritePin`(GPIOA, GPIO_PIN_4, 1);

閃爍代碼

96-99行插入如下代碼:

	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,1);
	HAL_Delay(1000);
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,0);
	HAL_Delay(1000);

stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

下載代碼到開發(fā)板

  • 按照之前的連線接好STLINK和bluePill。將STLINK插入電腦的USB口。點(diǎn)擊下圖所示的綠色運(yùn)行按鈕。

  • 將bluePill板子上的黃色跳線帽如下圖1中方式跳線,并點(diǎn)擊下面的Reset按鈕,板子進(jìn)入編程模式56
    stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

  • 點(diǎn)擊工具欄中的綠色小箭頭標(biāo)志進(jìn)行編譯和下載。
    stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

  • 在彈出的對話框中選擇所有默認(rèn)設(shè)置,直接點(diǎn)擊OK。
    stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

  • 如下圖所示,顯示successful就說明下載完成了
    stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

  • 此時需要將開發(fā)板上的跳線更改為運(yùn)行模式,就可以看到板載PC13燈開始閃爍了。(有時候也不用,,,如果你下載了發(fā)現(xiàn)沒變化可以改變跳帽試試。新手,,這個地方不太能解釋清楚。)

tips 下載的時候編譯器可能會彈出下圖所示的界面。此時需要更新你的STLINK。方法是第一步線點(diǎn)擊Open in update mode,這時下方標(biāo)號2所示的位置就會顯示你的下載器相關(guān)信息。點(diǎn)擊標(biāo)號3所示的upgrade。開始更新。更新完后就能正常進(jìn)入下載模式了。
stm32的pc13閃爍,stm32f103C8T6,STM32CubeIDE,HAL庫

小結(jié)

其實(shí)這個教程就是簡單的展示了下如何利用HAL庫提供的函數(shù)快速在STM32板子上點(diǎn)亮一個小燈。因?yàn)椴簧婕暗綇?fù)雜的參數(shù)設(shè)置,所以CubeMX里面的相應(yīng)設(shè)置比較少。整個過程和Arduino開發(fā)比起來稍顯復(fù)雜,但是基本思路是相同的。Arduino中因?yàn)槎际侵苯舆x擇開發(fā)板,所以不用配置CubeMX中的相關(guān)信息。其實(shí)CubeMX中也可以直接選擇開發(fā)板。后續(xù)會涉及到。
后續(xù)計劃這個教程都配套錄制對應(yīng)的視頻教程來彌補(bǔ)文字教程中可能遺漏的細(xì)節(jié)。

參考文獻(xiàn)


  1. STLINK-V2和STM32連線:
    https://freeelectron.ro/installing-st-link-v2-to-flash-stm32-targets-on-linux/ ??

  2. STM32-base:
    https://stm32-base.org/boards/STM32F103C8T6-Blue-Pill.html ??

  3. STM32CubeIDE下載安裝:
    https://blog.csdn.net/Brendon_Tan/article/details/107685044 ??

  4. Stm32CubeIDE設(shè)置補(bǔ)全快捷鍵和主題:
    https://blog.csdn.net/u014627020/article/details/117444089 ??

  5. BLUEPill編程和運(yùn)行模式切換:
    https://iotforgeeks.com/program-blue-pill-stm32-directly-with-usb-port/ ??

  6. STM32官方WiKiSTEP by STEP教程https://wiki.stmicroelectronics.cn/stm32mcu/wiki/Category:Getting_started_with_STM32_:_STM32_step_by_step ??文章來源地址http://www.zghlxwxcb.cn/news/detail-568815.html

到了這里,關(guān)于STM32CubeIDE + HAL + STM32f103C8T6 系列教程1 ---板載PC13LED閃爍的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • WS2812B彩燈 STM32HAL庫開發(fā):PWM+DMA(stm32f103c8t6)

    WS2812B彩燈 STM32HAL庫開發(fā):PWM+DMA(stm32f103c8t6)

    目錄 一、摘要 二、WS2812B介紹 三、CUBEMX配置 四、程序介紹(KEIL編譯器) 五、數(shù)據(jù)手冊 ? ? ? ? 1、本文使用示例單片機(jī)型號為 stm32f103c8t6 ,RGB型號為 WS2812B ; ????? ???2、主要實(shí)現(xiàn)功能是實(shí)現(xiàn)用 PWM+DMA 使RGB_LED亮起不同顏色的燈光; ????????3、目的:簡單調(diào)通該型號

    2024年02月03日
    瀏覽(16)
  • STM32F103C8T6基礎(chǔ)開發(fā)教程(HAL庫)—點(diǎn)亮第一顆LED燈

    STM32F103C8T6基礎(chǔ)開發(fā)教程(HAL庫)—點(diǎn)亮第一顆LED燈

    STM32F103C8T6基礎(chǔ)開發(fā)教程(HAL庫)—開發(fā)環(huán)境配置 STM32F103C8T6基礎(chǔ)開發(fā)教程(HAL庫)—Keil添加注釋的快捷鍵 STM32F103C8T6基礎(chǔ)開發(fā)教程(HAL庫)—點(diǎn)亮第一顆LED燈 STM32F103C8T6基礎(chǔ)開發(fā)教程(HAL庫)—LED燈交替閃爍 STM32F103C8T6基礎(chǔ)開發(fā)教程(HAL庫)—LED燈呼吸閃爍 STM32F103C8T6基礎(chǔ)開發(fā)

    2024年01月18日
    瀏覽(24)
  • ESP8266與手機(jī)相互通信 透傳模式(STM32F103C8T6 HAL庫)有APP和完整代碼

    ESP8266與手機(jī)相互通信 透傳模式(STM32F103C8T6 HAL庫)有APP和完整代碼

    一、目標(biāo) ? ? ? ? stm32f103c8t6用串口發(fā)送AT指令控制esp8266發(fā)送數(shù)據(jù)到手機(jī)APP上,同時手機(jī)也可以發(fā)送數(shù)據(jù)到stm32f103c8t6主控,控制LED的亮滅。 ? ? ? ? ?將esp8266模塊的GND、VCC、TXD、RXD、CH-PD與單片機(jī)對應(yīng)引腳連接,其中TXD與RXD要反接,模塊在工作時CH-PD要處于高電平狀態(tài)。 二、

    2024年02月16日
    瀏覽(19)
  • 舵機(jī)控制(STM32F103C8T6)

    舵機(jī)控制(STM32F103C8T6)

    ? ? ? ? 本文是以 STM32F103C8T6 作為主控芯片,通過PB6端口輸出PWM,實(shí)現(xiàn)控制180°舵機(jī)。 (一)概述 ? ? ? ? 舵機(jī)是一種位置伺服驅(qū)動器器,是一種帶有輸出軸的小裝置。當(dāng)我們向伺服器發(fā)送一個控制信號時,輸出軸就可以轉(zhuǎn)到特定的位置。只在控制信號持續(xù)不變,伺服機(jī)構(gòu)就

    2023年04月09日
    瀏覽(25)
  • 功耗測評 | STM32F103C8T6

    功耗測評 | STM32F103C8T6

    STM32F103C8T6 MCU越來越廣泛的應(yīng)用在生產(chǎn)生活的各個領(lǐng)域,外接豐富的傳感器、功能模塊、通信模塊、顯示存儲等可以形成各種可樣的產(chǎn)品項(xiàng)目應(yīng)用。對于功耗要求比較高的產(chǎn)品,一般會選擇STM32L系列的MCU,但是從功耗的評測角度,邏輯上是基本相似的。 在很多應(yīng)用場合中都對

    2024年02月07日
    瀏覽(31)
  • STM32F103C8T6系統(tǒng)板

    STM32F103C8T6系統(tǒng)板

    1.電源部分 2.復(fù)位 3.晶振 4. 電源電路——防反接 有關(guān)二極管 漫談二極管防電源反接電路 本次采用上圖右下角的NMOS防反接電路。 電源電路——電源芯片 AMS1117是AMS公司的 ,LM1117是NS(美國國家半導(dǎo)體)的,LM1117要貴很多,所以一般的用AMS1117就可以了。 (以下分析參考STM32F10

    2024年02月02日
    瀏覽(20)
  • STM32F103C8T6板子介紹

    STM32F103C8T6板子介紹

    STM32簡介 STM32是ST公司基于ARM Cortex-M內(nèi)核開發(fā)的32位微控制器 STM32常應(yīng)用在嵌入式領(lǐng)域,如智能車、無人機(jī)、機(jī)器人、無線通信、物聯(lián)網(wǎng)、工業(yè)控制、娛樂電子產(chǎn)品等 STM32功能強(qiáng)大、性能優(yōu)異、片上資源豐富、功耗低,是一款經(jīng)典的嵌入式微控制器。 ?STM32F103C8T6 F1XX片上資源

    2024年02月11日
    瀏覽(22)
  • STM32F103C8T6串口通信

    STM32F103C8T6串口通信

    ? 首先來看一下需要操作的函數(shù),以及配置的步驟: 圖1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖2?? Code: usart.c #include \\\"usart.h\\\" void ustart_Init(void ) { GPIO_InitTypeDef GPIO_Init_Ustar ; // 定義輸出端口TX的結(jié)構(gòu)體對象 USART_InitTypeDef USTART_Init; // 定義串口初始化結(jié)構(gòu)體對象

    2024年02月16日
    瀏覽(28)
  • STM32系列(HAL庫)——F103C8T6獲取DHT11溫濕度串口打印

    STM32系列(HAL庫)——F103C8T6獲取DHT11溫濕度串口打印

    在此特別鳴謝原文博主! (1)編程平臺:Keil5 (2)CubeMX (3)XCOM(串口調(diào)試助手) (1)F1的板子,本例使用經(jīng)典F103C8T6 ?(2)DHT11——溫濕度傳感器 (3)ST-link?下載器 (4)USB-TTL模塊 (5)杜邦線若干 (1)芯片選擇 STM32F103C8T6 ?(2)配置RCC、SYS、時鐘樹 配置RCC 配置SYS 配置時鐘樹 (3) 配置GPIO ?(4)配置

    2023年04月08日
    瀏覽(17)
  • STM32F103C8T6移植FreeRTOS

    STM32F103C8T6移植FreeRTOS

    根據(jù)自己開發(fā)板型號下載地址:STM32相關(guān)內(nèi)容下載地址 SDK直接下載地址:STM32直接下載地址 下載參考博客 FreeROTS下載地址 選用V9.0.0 版本 個人創(chuàng)建目錄如下,可做參考 keil目錄 鏈接頭文件 ? 修改堆棧大小 ? 修改中斷函數(shù)名 去掉stm32f10x_it.c終端函數(shù) 增加FreeRTOS中斷 特別解釋

    2024年02月12日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包