0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32L051上使用RT-Th (二、CubeMX配置)

矜辰所致 ? 來(lái)源:矜辰所致 ? 作者:矜辰所致 ? 2022-06-26 14:02 ? 次閱讀
得吐槽一下這個(gè)標(biāo)題字?jǐn)?shù),我都寫不全了
應(yīng)用篇-在STM32L051上使用RT-Thread 第二篇,使用STM32CubeMX 進(jìn)行對(duì)應(yīng)外設(shè)配置,同時(shí)做一些簡(jiǎn)單測(cè)試。

目錄

  • 前言
  • 一、使用 STM32CubeMX 配置
  • 1.1 基礎(chǔ)步驟
  • 1.2 修改配置
  • 1.3 踩坑記錄
  • 二、初始簡(jiǎn)單測(cè)試
  • 2.1 基本設(shè)計(jì)思路
  • 2.2 外設(shè)簡(jiǎn)單測(cè)試
  • 三、時(shí)刻關(guān)注占RAM大小
  • 結(jié)語(yǔ)

前言

上篇文章我們僅僅是開(kāi)了個(gè)頭,使用 RT-Thread Studio 新建了一個(gè)基于 STM32L051 的 RT-Thread Nano 工程,本文我們就在在這個(gè)工程的基礎(chǔ)上使用 STM32CubeMX 做STM32的基本配置。

??
本 RT-Thread 專欄記錄的開(kāi)發(fā)環(huán)境:
RT-Thread記錄(一、RT-Thread 版本、RT-Thread Studio開(kāi)發(fā)環(huán)境 及 配合CubeMX開(kāi)發(fā)快速上手)
RT-Thread記錄(二、RT-Thread內(nèi)核啟動(dòng)流程 — 啟動(dòng)文件和源碼分析)
??
RT-Thread 內(nèi)核篇系列博文鏈接:
RT-Thread記錄(三、RT-Thread 線程操作函數(shù)及線程管理與FreeRTOS的比較)
RT-Thread記錄(四、RT-Thread 時(shí)鐘節(jié)拍和軟件定時(shí)器
RT-Thread記錄(五、RT-Thread 臨界區(qū)保護(hù))
RT-Thread記錄(六、IPC機(jī)制之信號(hào)量、互斥量和事件集)
RT-Thread記錄(七、IPC機(jī)制之郵箱、消息隊(duì)列)
RT-Thread記錄(八、理解 RT-Thread 內(nèi)存管理)
RT-Thread記錄(九、RT-Thread 中斷處理與階段小結(jié))
??
在STM32L051C8 上使用 RT-Thread 應(yīng)用篇系列博文連接:
RT-Thread 應(yīng)用篇 — 在STM32L051上使用 RT-Thread (一、無(wú)線溫濕度傳感器 之 新建項(xiàng)目)

一、使用 STM32CubeMX 配置

STM32CubeMX 配合 RT-Thread Studio 使用的方法在我的博文:《RT-Thread記錄(一、RT-Thread 版本、RT-Thread Studio開(kāi)發(fā)環(huán)境 及 配合CubeMX開(kāi)發(fā)快速上手)》

的第三小節(jié)有說(shuō)明:

pYYBAGK39meANS85AAAt6SiABAg236.png

配置我們需要根據(jù)原理圖進(jìn)行,本應(yīng)用所用到的外設(shè)原理圖如下(無(wú)線通訊模塊沒(méi)有放進(jìn)來(lái),使用的是串口TXD3和RXD3,另外使用的外部8Mhz):

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

1.1 基礎(chǔ)步驟

點(diǎn)擊 CubeMX Setting,然后選擇芯片類型,點(diǎn)擊OK即可打開(kāi)STM32CubeMX,如下圖:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

進(jìn)入CubeMX 后設(shè)置步驟就很基礎(chǔ)了。

我們按照 時(shí)鐘,調(diào)試接口,串口,GPIO,定時(shí)器,工程選項(xiàng) 依次配置,下面就簡(jiǎn)單列一下步驟:

時(shí)鐘:

RCC選項(xiàng),外部高速時(shí)鐘 選擇使用外部晶振:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

選擇完時(shí)鐘就可以在 Clock Configuration 中配置系統(tǒng)時(shí)鐘,直接把系統(tǒng)時(shí)鐘改成最大的 32Mhz,點(diǎn)擊確定,系統(tǒng)會(huì)自動(dòng)修改好時(shí)鐘樹:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

調(diào)試接口:

SYS選項(xiàng),在 Debug Serial Wire 前打勾,表示使用SWD接口:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_19,color_FFFFFF,t_70,g_se,x_16

串口:

串口一已經(jīng)用作了打印串口,在工程 drivers 文件夾里的drv_usart.c 文件中已經(jīng)使用INIT_BOARD_EXPORT(rt_hw_usart_init); 初始化了,所以我們這里不需要使能。

我們直接設(shè)置一下我們需要和無(wú)線通訊模塊 通信的 串口,原理圖上是串口3,在L051上是LPUART1(STM32F103C8 和 STM32L051C8是 pin to pin 的):

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

GPIO:

普通GPIO設(shè)置,2個(gè)按鍵輸入,一個(gè)LED輸出,2個(gè)IO口做軟件I2C

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_19,color_FFFFFF,t_70,g_se,x_16

定時(shí)器:

我們?cè)O(shè)置兩個(gè)硬件定時(shí)器,一個(gè)1S,一個(gè)1ms,我們可以根據(jù)自己使用不使用選擇初始化。

設(shè)置為1S的定時(shí)器 TIM2:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

設(shè)置為1ms的定時(shí)器 TIM21:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

工程選項(xiàng):

最后在 Project Manager 中做最后的配置,生成工程:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

完成上述步驟,點(diǎn)擊CubeMX右上角 GENERATE CODE 生成工程。
根據(jù)我以前的博文說(shuō)明,生成好了以后,不要打開(kāi),直接關(guān)閉CubeMX即可,然后回到 RT-Thread Studio,出現(xiàn)下面的彈框點(diǎn)擊確定即可。

pYYBAGK39myAdbFcAAAql5lL6pE638.png

完成以后多了cubemx 文件夾,然后編譯一下,正常結(jié)果如下(其實(shí)我自己走流程的時(shí)候,出過(guò)一次問(wèn)題,后面小節(jié)會(huì)說(shuō)明):

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

1.2 修改配置

還是根據(jù)《RT-Thread記錄(一、RT-Thread 版本、RT-Thread Studio開(kāi)發(fā)環(huán)境 及 配合CubeMX開(kāi)發(fā)快速上手)》中的記錄,修改一下SConscript文件,使得包含我們 CubeMX 生成的 GPIO 、串口和定時(shí)器設(shè)置:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

修改完成以后不要忘了同步 scons 配置?。≡僦匦聵?gòu)建!

這里要特別說(shuō)明一下stm32f1xx_it.c 這個(gè)文件:

在《RT-Thread記錄(一、RT-Thread 版本、RT-Thread Studio開(kāi)發(fā)環(huán)境 及 配合CubeMX開(kāi)發(fā)快速上手)》中我建議不需要添加,因?yàn)槔锩嬗行┲袛囗憫?yīng)函數(shù), RT-Thread 內(nèi)核有自己的實(shí)現(xiàn)方式。但是這里我還是添加了, 但是要把stm32f1xx_it.c 文件中 一些中斷響應(yīng)函數(shù)的給注銷了,因?yàn)樵赗T-Thread 內(nèi)核有其他地方有實(shí)現(xiàn)!

我的做法是,除了下圖自己后面程序設(shè)計(jì)需要使用到的,其他的都給刪除了,注意這里方便說(shuō)明用的是函數(shù)聲明部分,需要在stm32f1xx_it.c 文件中函數(shù)實(shí)現(xiàn)部分刪除:

poYBAGK39m2AV0a5AABWVCerPdU062.png

配置完成以后再次進(jìn)行編譯,結(jié)果如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

完成上面配置后我們就可以開(kāi)始設(shè)計(jì)我們的程序了。

1.3 踩坑記錄

按照上面 1.1 小節(jié)的基礎(chǔ)步驟設(shè)置 ,完成以后,在CubeMX最后一步生成工程的時(shí)候居然卡死了,我只能強(qiáng)制退出CubeMX任務(wù),重新點(diǎn)擊CubMX Settings 打開(kāi)CubeMX進(jìn)行配置。

完成以后發(fā)現(xiàn)左邊CubeMX里面的文件列表不是和當(dāng)時(shí)我文章記錄的一樣:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

居然沒(méi)有SConscript,編譯報(bào)錯(cuò)了,即便我重新復(fù)制進(jìn)去,也沒(méi)有用……

一般來(lái)說(shuō),如果編譯除了問(wèn)題,我們應(yīng)該從編譯結(jié)果去查找問(wèn)題,然后分析解決,但是對(duì)于這種軟件聯(lián)動(dòng)的自動(dòng)化配置,我還是建議重新操作嘗試解決。所以我把工程全部刪除,然后重新來(lái)一遍看看。

因?yàn)榭紤]到CubeMX卡死過(guò)一次,項(xiàng)目出問(wèn)題了,兩個(gè)軟件沒(méi)有成功的關(guān)聯(lián),所以我是重新操作了一次正常了。

而且有一個(gè)系列操作,在我們點(diǎn)擊 RT-Thread Studio 打開(kāi)CubeMX以后,最好是等待 RT-Thread Studio 的一個(gè)彈框消失以后再進(jìn)行操作:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

二、初始簡(jiǎn)單測(cè)試

完成上面的配置,我們的基本框架就已經(jīng)搭建好了,剩下的就是實(shí)現(xiàn)應(yīng)用程序了,那么在實(shí)際的操作之前,我們先簡(jiǎn)單驗(yàn)證一下整體的框架沒(méi)有問(wèn)題,簡(jiǎn)單測(cè)試下LED和按鍵,串口的話要單獨(dú)一篇文章分析。

2.1 基本設(shè)計(jì)思路

首先我們得在 main.c 文件中包含必備頭文件,和在main線程中做基本的初始化:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

其實(shí)這個(gè)步驟就和裸機(jī)一樣,我們完全可以把 main 當(dāng)成裸機(jī)中的main函數(shù),所有的程序在main中實(shí)現(xiàn),也是可以。 這種方式就類似于 ESP32-C3 使用ESP-IDF 開(kāi)發(fā)環(huán)境中,大部分操作都在 app_main 任務(wù)中實(shí)現(xiàn), app_main 也不過(guò)是 FreeRTOS 啟動(dòng)時(shí)候創(chuàng)建的一個(gè)任務(wù)。


記得在上一篇博文中我們提到過(guò) 一個(gè)main 線程就占用了 2K,這個(gè)2K不能浪費(fèi),要么我們?cè)趍ain里面多做一些工作,要么就是到時(shí)候把main線程的大小改小。

我們一個(gè)單品溫濕度傳感器,有幾個(gè)主要的工作:

  1. I2C 數(shù)據(jù)采集,這個(gè)部分需要移植一下代碼,然后采集實(shí)現(xiàn)部分需要用一個(gè)線程來(lái)實(shí)現(xiàn),計(jì)劃是定時(shí)器到了一定的計(jì)數(shù)之后,發(fā)送一個(gè)信號(hào)量使得線程喚醒采集一次;
  2. 無(wú)線模塊串口通訊,這個(gè)部分是和上一步聯(lián)動(dòng)的,定時(shí)器到了定時(shí)時(shí)間,通知傳感器采集數(shù)據(jù),然后把數(shù)據(jù)放置無(wú)線通訊協(xié)議中發(fā)送出出去,這個(gè)部分還得用一個(gè)線程實(shí)現(xiàn),串口的通訊;
  3. LED燈,其實(shí)可有可無(wú),但是作為我們第一個(gè)基礎(chǔ)應(yīng)用,還是加上也沒(méi)關(guān)系,LED的切換,到時(shí)候可以隨意加在哪里,比如采集到了數(shù)據(jù)成功發(fā)送以后,LED燈閃爍一次;
  4. 按鍵,按鍵其實(shí)也可有可無(wú),但是還是因?yàn)槲覀兊牡谝粋€(gè)基礎(chǔ)應(yīng)用,我想把我常用的按鍵驅(qū)動(dòng)移植過(guò)來(lái)試一試,根據(jù)以往經(jīng)驗(yàn),按鍵驅(qū)動(dòng)也需要一個(gè)線程,而且這個(gè)線程至少需要512字節(jié)的空間;
  5. 定時(shí)器,根據(jù)產(chǎn)品所需要的的定時(shí)時(shí)間釋放信號(hào)量,使得數(shù)據(jù)采集線程開(kāi)始工作,定時(shí)器是硬件定時(shí)器,使用中斷實(shí)現(xiàn)不用額外線程;

這里思路暫時(shí)先這樣,后期如果使用過(guò)程中有新的改動(dòng),再來(lái)更新。

2.2 外設(shè)簡(jiǎn)單測(cè)試

然后我們把一些外設(shè)需要的宏定義設(shè)置一下:

pYYBAGK39m-AGBVfAABIJXmHwKA241.png

LED:

然后在主函數(shù)中寫一個(gè)LED燈切換的邏輯(此部分太簡(jiǎn)單了,所以截個(gè)圖看看就行了):

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_13,color_FFFFFF,t_70,g_se,x_16

按鍵:

然后新建一個(gè)線程,給到時(shí)候按鍵驅(qū)動(dòng)移植使用,這里就用簡(jiǎn)單的按鍵處理方式,大小設(shè)定為512字節(jié)。

值得注意的是,我們新建任務(wù)只能用靜態(tài)初始化的方式,因?yàn)槲覀儧](méi)有定義使用heap,新建的線程大小直接影響RAM空間大小。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_17,color_FFFFFF,t_70,g_se,x_16

定時(shí)器:

我們有一個(gè)1S的定時(shí),我們也來(lái)簡(jiǎn)單測(cè)試一下,具體的測(cè)試方式和我們?cè)谟涗浘胖械囊恢拢?br /> 《RT-Thread記錄(九、RT-Thread 中斷處理與階段小結(jié))》

但是這次我們加了stm32f1xx_it.c 文件,所以我們這次直接在stm32f1xx_it.c 文件中修改(再次說(shuō)明,實(shí)際使用中中斷響應(yīng)函數(shù)中不要添加打印操作,這里只是測(cè)試測(cè)試?。。。?/strong>

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_17,color_FFFFFF,t_70,g_se,x_16

所有改完以后編譯一下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

OK!編譯沒(méi)問(wèn)題,下載查看測(cè)試結(jié)果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_18,color_FFFFFF,t_70,g_se,x_16

三、時(shí)刻關(guān)注占RAM大小

在小內(nèi)存芯片上使用操作系統(tǒng),程序運(yùn)行占用的RAM大小我們不容忽略,我們?cè)趹?yīng)用中務(wù)必學(xué)會(huì)觀察內(nèi)存占用情況:

完成CubeMX基礎(chǔ)步驟以后,默認(rèn)只添加了兩個(gè).c文件,與初始工程的比較:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_1,color_FFFFFF,t_70,g_se,x_16

修改完配置,表示著我們的基礎(chǔ)框架基本搭建好了,我們多添加了GPIO、串口,和定時(shí)器的驅(qū)動(dòng)程序:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_1,color_FFFFFF,t_70,g_se,x_16

說(shuō)明!上面幾張圖因?yàn)閯傞_(kāi)始,所以貼了和初始工程的比較,往后的比較我不可能從初始工程開(kāi)始貼圖,只能與上一次工程完善的結(jié)果做比較:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

本文的簡(jiǎn)單測(cè)試,程序運(yùn)行時(shí)候需要占用 RAM的大小: 1536+5184= 6720 字節(jié),我們的芯片 RAM:8192字節(jié)。

結(jié)語(yǔ)

本文依然還處于工程配置階段,再次手把手做了次教學(xué),如何使用 STM32CubeMX 配合 RT-Thread Studio開(kāi)發(fā)。

我們?cè)敿?xì)的說(shuō)明了配置步驟,同時(shí)在初始測(cè)試小節(jié)寫好了本應(yīng)用的的設(shè)計(jì)思路。做了基本框架設(shè)計(jì) 和 初步的測(cè)試說(shuō)明。

現(xiàn)在看來(lái),這系列應(yīng)用篇還真算得上保姆級(jí)的教程了 = =!我自己現(xiàn)在都覺(jué)得真的細(xì)……

下一篇的內(nèi)容應(yīng)該是把 I2C 讀寫的程序移植過(guò)來(lái),到時(shí)候看看篇幅,如果又有很多細(xì)節(jié)那就這一個(gè)內(nèi)容,如果內(nèi)容篇幅簡(jiǎn)單到時(shí)候看情況添加。

好了,本文就到這,謝謝大家!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354294
  • Studio
    +關(guān)注

    關(guān)注

    2

    文章

    189

    瀏覽量

    28612
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1261

    瀏覽量

    39838
  • CubeMx
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    1306
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32CubeMX為什么無(wú)法添加rt-thread-nano?

    STM32CubeMX 無(wú)法添加 rt-thread-nano
    發(fā)表于 09-27 06:17

    RT-Thread Nano 上線ST CubeMX

    感謝ST法國(guó)CubeMX團(tuán)隊(duì)的支持,RT-ThreadNano現(xiàn)已成功上線STCubeMX。本文將詳細(xì)介紹如何快速上手RT-ThreadNano,并指導(dǎo)大家在STCubeMX上進(jìn)行項(xiàng)目配置
    的頭像 發(fā)表于 09-20 08:10 ?453次閱讀
    <b class='flag-5'>RT</b>-Thread Nano 上線ST <b class='flag-5'>CubeMX</b>

    STM32L051來(lái)設(shè)計(jì)一款變送器模塊,MCU的SPI接口接收中斷標(biāo)志位就是不置位,為什么?

    我們現(xiàn)在用STM32L051來(lái)設(shè)計(jì)一款變送器模塊。4~20mA 接口。MCU通過(guò)ADC(SPI接口) 采集傳感器輸出 的信號(hào)。因?yàn)槲覀円驛DC的采樣率達(dá)到50ksps,因此對(duì)Mcu的運(yùn)行效率有非常
    發(fā)表于 05-16 06:48

    STM32L051進(jìn)入HardFault中斷的原因?

    由于這個(gè)地方出現(xiàn)問(wèn)題。 但是在L051運(yùn)行時(shí),在Read返回后就進(jìn)入了HardFault中斷。 小菜一碟,慢慢品嘗... 之前有見(jiàn)2字節(jié)/4字節(jié)等的多字節(jié)變量轉(zhuǎn)換為單字節(jié)訪問(wèn)方式,反過(guò)來(lái)還真是第一次見(jiàn), 哈哈哈...
    發(fā)表于 05-06 07:38

    stm32L051cubemx庫(kù)配置不了CMOP是怎么回事?

    求教stm32L051cubemx庫(kù)配置不了CMOP? 我用STM32CUBEMX配置了COMP1,程序里運(yùn)行了初始化函數(shù)MX_COMP1
    發(fā)表于 05-06 07:07

    STM32CUBEMX配置STM32L496VGT3芯片,燒寫的時(shí)候報(bào)錯(cuò)的原因?

    本人現(xiàn)在在用STM32CUBEMX配置STM32L496VGT3芯片,并按照網(wǎng)上的教程將芯片的USB外設(shè)配置為了CDC類,但是在燒寫的時(shí)候出現(xiàn)了如下錯(cuò)誤,請(qǐng)問(wèn)想要PC機(jī)能夠識(shí)別USB設(shè)
    發(fā)表于 04-28 07:13

    stm32l051加一個(gè)SD卡功能,在工程中添加了FATFS文件,出現(xiàn)了內(nèi)存不夠的錯(cuò)誤為什么?

    小弟現(xiàn)在開(kāi)發(fā)stm32l051,想加一個(gè)SD卡功能,在工程中添加了FATFS文件,出現(xiàn)了內(nèi)存不夠的錯(cuò)誤。我查了數(shù)據(jù)手冊(cè),l051的FLASH有64K,RAM有8K,沒(méi)加FATFS之前一共用了10k多的FLASH,加了以后就內(nèi)存不夠,想問(wèn)問(wèn)大佬們這個(gè)FATFS一般占用多少F
    發(fā)表于 04-18 06:09

    STM32CubeMX配置STM32L4R9ZI的硬件SDMMC缺少DMA Settings配置是怎么回事?

    STM32CubeMX配置STM32L4R9ZI的硬件SDMMC1,缺少DMA Settings配置
    發(fā)表于 04-08 07:25

    STM32L051使用HAL庫(kù)串口中斷的疑問(wèn)求解

    使用STM32CUB生成原始代碼,然后采用串口中斷接收 L051有兩個(gè)串口,串口1,串口2,以及一個(gè)低功耗串口 發(fā)現(xiàn)只有串口2可以正常中斷發(fā)收 為了使能中斷,都在while主循環(huán)之前調(diào)用
    發(fā)表于 04-08 07:17

    STM32L051同時(shí)開(kāi)啟RTC時(shí)間戳和秒喚醒后,使用GPIO引腳無(wú)法觸發(fā)時(shí)間戳中斷如何解決?

    STM32L051同時(shí)開(kāi)啟RTC時(shí)間戳和秒喚醒后,使用GPIO引腳無(wú)法觸發(fā)時(shí)間戳中斷。但使用一個(gè)3.3V的電源接到PC13能夠觸發(fā)RTC時(shí)間戳。 我將PB8和PC13相連,PB8特定情況下會(huì)輸出脈沖
    發(fā)表于 04-01 06:37

    關(guān)于STM32L051C8T6芯片LPUART+DMA接收問(wèn)題求解

    STM32L051C8T6芯片低功耗串口LPUART+DMA。 我用STM32CUBEMX 生成了程序LPUART以及UART2串口+DMA的程序。 重新寫了RxCpltCall函數(shù)里面有回顯功能
    發(fā)表于 03-28 07:05

    stm32l051 hal庫(kù)如何使用硬件i2c從機(jī)?

    stm32l051 hal庫(kù)如何使用硬件i2c從機(jī),有沒(méi)有相關(guān)參考程序?,F(xiàn)在調(diào)試過(guò)程中一直進(jìn)入AF錯(cuò)誤,是什么原因?qū)е碌模?/div>
    發(fā)表于 03-27 08:24

    STM32L051程序燒入后第一次跑是正常的,后面不管是直接debug復(fù)位,還是重上電都無(wú)法重新給變量賦值,為什么?

    芯片用的STM32L051,程序燒入后第一次跑是正常的,后面不管是直接debug復(fù)位,還是重上電,都無(wú)法重新給變量賦值,直接為0,很奇怪,找了一圈找不到答案,希望能有大佬能解答一下
    發(fā)表于 03-26 07:50

    STM32F051C8 PA0不能以DMA的方式輸出PWM,沒(méi)有正確波形輸出是哪里出了問(wèn)題?

    實(shí)現(xiàn)功能:用STM32F051C8的PA0驅(qū)動(dòng)WS2812B 彩色LED燈條; 實(shí)現(xiàn)方法和工具:1.使用Cubemx 生成代碼;2.配置PA0,PA0為PWM輸出; 配置方式:打開(kāi)
    發(fā)表于 03-13 06:20

    stm32cube怎么安裝 STM32CubeMX安裝步驟教程

    STM32CubeMXSTM32芯片圖形化配置工具,通過(guò)簡(jiǎn)單的操作便能實(shí)現(xiàn)相關(guān)配置,省去了我們配置各種外設(shè)的時(shí)間,支持MDK、IAR Fo
    發(fā)表于 11-14 12:37 ?1583次閱讀
    <b class='flag-5'>stm32</b>cube怎么安裝 <b class='flag-5'>STM32CubeMX</b>安裝步驟教程