一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

基于STM32CubeMX的HAL庫的USB接口使用(MSC基于SD卡模擬U盤)

撞上電子 ? 2023-05-17 10:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、USB簡介
USB(Universal Serial BUS)通用串行總線,是一個外部總線標準,用于規(guī)范電腦與外部設(shè)備的連接和通訊。是應(yīng)用在PC領(lǐng)域的接口技術(shù)。USB接口支持設(shè)備的即插即用和熱插拔功能。USB是在1994年底由英特爾、康柏、IBM、Microsoft 等多家公司聯(lián)合提出的。

USB 發(fā)展到現(xiàn)在已經(jīng)有USB1.0/1.1/2.0/3.0等多個版本。目前用的最多的就是USB1.1,USB2.0和USB3.0 目前已經(jīng)開始普及。

STM32F103 自帶的USB符合USB2.0規(guī)范,不過STM32F103的USB 都只能用來做設(shè)備,而不能用作主機。

標準USB共四根線組成,除VCC/GND外,另外為D+,D-,這兩根數(shù)據(jù)線采用的是差分電壓的方式進行數(shù)據(jù)傳輸?shù)?。在USB主機上,D-和D+都是接了15K的電阻到GND的,所以在沒有設(shè)備接入的時候,D+和D-均是低電平。而在USB設(shè)備中,如果是高速設(shè)備,則會在D+上接一個1.5K的電阻到 VCC,而如果是低速設(shè)備,則會在D-上接一個1.5K 的電阻到VCC。這樣當設(shè)備接入主機的時候,主機就可以判斷是否有設(shè)備接入,并能判斷設(shè)備是高速設(shè)備還是低速設(shè)備。

STM32F103的MCU自帶USB 從控制器,符合USB規(guī)范的通信連接;PC主機和微控制器之間的數(shù)據(jù)傳輸是通過共享一專用的數(shù)據(jù)緩沖區(qū)來完成的,該數(shù)據(jù)緩沖區(qū)能被USB外設(shè)直接訪問。這塊專用數(shù)據(jù)緩沖區(qū)的大小由所使用的端點數(shù)目和每個端點最大的數(shù)據(jù)分組大小所決定,每個端點最大可使用 512 字節(jié)緩沖區(qū)(專用的512字節(jié),和CAN共用),最多可用于16個單向或8個雙向端點。

USB模塊同PC主機通信,根據(jù)USB規(guī)范實現(xiàn)令牌分組的檢測,數(shù)據(jù)發(fā)送/接收的處理,和握手分組的處理。整個傳輸?shù)母袷接捎布瓿?,其中包?CRC 的生成和校驗。

1.1 USB MSC簡介

USB大容量存儲設(shè)備類是一種計算機和移動設(shè)備之間的傳輸協(xié)議,它允許一個通用串行總線(USB)設(shè)備來訪問主機的計算設(shè)備,使兩者之間進行文件傳輸。通過這個標準的計算機連接到的設(shè)備包括:移動硬盤、移動光驅(qū)、U盤、SD、TF等儲存卡讀卡器、數(shù)碼相機、各種數(shù)字音頻播放器和便攜式媒體播放器、智能卡閱讀器、掌上電腦和手機

MSC的通用性和操作簡單使他成為移動設(shè)備上最常見的文件系統(tǒng),USB MSC并不需要任何特定的文件系統(tǒng), 相反,它提供了一個簡單的界面來讀寫接口用于訪問任何硬盤驅(qū)動器。操作系統(tǒng)可以把MSC像本地硬盤一樣格式化,并可以與他們喜歡的任何文件系統(tǒng)格式它,當然也可以創(chuàng)建多個分區(qū)。

1.2 SDIO簡介

SD卡在我們生活中已經(jīng)非常普遍了,控制器對SD卡進行讀寫通信操作一般有兩種通信接口可選,一種是SPI接口,另外一種就是SDIO接口。SDIO 全稱是安全數(shù)字輸入/輸出接口,多媒體卡(MMC)、SD 卡、SD I/O 卡都有SDIO接口。MMC卡可以說是SD卡的前身,現(xiàn)階段已經(jīng)用得很少。STM32F1系列控制器有一個SDIO主機接口,它可以與MMC卡、SD 卡、SD I/O卡以及CE-ATA設(shè)備進行數(shù)據(jù)傳輸。另外,STM32F1系列控制器的SDIO是不支持SPI通信模式的,如果需要用到SPI通信只能使用SPI外設(shè)。e4de91cc-f445-11ed-ba01-dac502259ad0.png

1.3 SD卡簡介

SD卡除了SD-Micro卡之外,還有兩種分別是SD和mini-SD,他們分別長這樣:

e5222446-f445-11ed-ba01-dac502259ad0.png

SD卡的四個角有一個是沒有的,以便我們認識正反來使用它,SD卡的一側(cè)還有一個可以扳動的讀寫保護開關(guān),這三種卡里面SD卡最大,SD-Micro最小。根據(jù)SD卡的容量,可劃分為SDSC、SDHC、SDXC三種標準?,F(xiàn)今,市場的主流SD產(chǎn)品是SDHC和SDXC這兩種較大容量的存儲卡,而SDSC卡因容量過小,已逐漸被市場淘汰。SD卡(三種卡的統(tǒng)稱)的存儲空間是由一個一個扇區(qū)組成的,SD卡的扇區(qū)大小是固定的,為512byte(這一點很重要) ,若干個扇區(qū)又可以組成一個分配單元(也被成為簇),分配單元常見的大小為4K、8K、16K、32K、64K。需要注意的是,SD-Micro只有8個引腳,而SD卡是有九個引腳的,這兩種都可以直線4線通訊。

二、新建工程2.1打開軟件,點擊“新建工程”

e54aa646-f445-11ed-ba01-dac502259ad0.png2.2選擇 MCU 和封裝

e5974c58-f445-11ed-ba01-dac502259ad0.png

2.3配置時鐘

RCC設(shè)置,選擇HSE為 Crystal/Ceramic Resonator。

e5c531a4-f445-11ed-ba01-dac502259ad0.png

配置系統(tǒng)時鐘 SYSCLK為 72MHz,修改HCLK的值為72后,輸入回車,軟件會自動修改所有配置。

e5f9b514-f445-11ed-ba01-dac502259ad0.png2.4配置調(diào)試模式

非常重要的一步,否則會造成第一次燒錄程序后續(xù)無法識別調(diào)試器,SYS 設(shè)置,選擇 Debug 為 Serial Wire。

e617e638-f445-11ed-ba01-dac502259ad0.png三、USB3.1 參數(shù)配置

在 Connectivity 中選擇 USB 設(shè)置,并勾選 Device(FS) 激活 USB 設(shè)備。

e65961e4-f445-11ed-ba01-dac502259ad0.png

在 Parameter Settings 進行具體參數(shù)配置。

e674f3f0-f445-11ed-ba01-dac502259ad0.png

Speed:Full Speed 12MBit/s(固定為全速)

Low Power:默認 Disabled(在任何不需要使用usb模塊的時候,通過寫控制寄存器可以使usb模塊置于低功耗模式。在這種模式下,不產(chǎn)生任何靜態(tài)電流消耗,同時usb時鐘也會減慢或停止。通過對usb線上數(shù)據(jù)傳輸?shù)臋z測,可以在低功耗模式下喚醒usb模塊。也可以將一特定的中斷輸入源直接連接到喚醒引腳上,以使系統(tǒng)能立即恢復(fù)正常的時鐘系統(tǒng),并支持直接啟動或停止時鐘系統(tǒng))

3.2 引腳配置

USB 的 DP 引腳必須上拉 1.5K 歐的電阻,電腦才能檢測到 USB,否則檢測不到。

e6955596-f445-11ed-ba01-dac502259ad0.png

查看野火指南者開發(fā)板原理圖可知,需要將 PD6 配置為低電平使能 USB。e6bcf63c-f445-11ed-ba01-dac502259ad0.png在右邊圖中找到 PD6 引腳,選擇 GPIO_Output。e6df484a-f445-11ed-ba01-dac502259ad0.png

在GPIO output level 中選擇 Low 輸出低電平。

e7124998-f445-11ed-ba01-dac502259ad0.png3.3 配置時鐘

選擇 Clock Configuration,USB 時鐘配置為 48MHz,且來源最好是外部晶振分頻得到。

e73dc230-f445-11ed-ba01-dac502259ad0.png3.4 USB Device

USB有主機(Host)和設(shè)備(Device)之分。一般電腦的USB接口為主機接口,而鍵盤、鼠標、U盤等則為設(shè)備。

部分型號的STM32芯片有1~2個USB接口。像STM32F103系列的有一個USB Device接口,STM32F407系列的有2個USB接口,既可以作為HOST,又可以作為Device,還可以作為OTG接口。

在 Middleware 中選擇 USB_DEVICE 設(shè)置,在 Class For FS IP 設(shè)備類別選擇 Mass Storage Class(HID) 大容量存儲設(shè)備類。

e77376d2-f445-11ed-ba01-dac502259ad0.png

參數(shù)配置保持默認(或根據(jù)存儲介質(zhì)的最小存儲單元修改緩沖區(qū)大?。?/p>

e7a998c0-f445-11ed-ba01-dac502259ad0.png

MSC_MEDIA_PACKET (Media I/O buffer Size)(讀寫緩沖區(qū)大?。?12(默認為512,這個的大小對于USB讀寫速度會有一些影響,最好和存儲介質(zhì)的最小存儲單元一致)

本實驗板使用的SD卡(三種卡的統(tǒng)稱)的存儲空間是由一個一個扇區(qū)組成的,SD卡的扇區(qū)大小是固定的,為512byte(這一點很重要) ,若干個扇區(qū)又可以組成一個分配單元(也被成為簇),分配單元常見的大小為4K、8K、16K、32K、64K。

設(shè)備描述符保持默認。

e7df4b64-f445-11ed-ba01-dac502259ad0.png

四、SDIO

STM32 控制器可以控制使用單線或 4 線傳輸,本開發(fā)板設(shè)計使用 4 線傳輸。

e8035e1e-f445-11ed-ba01-dac502259ad0.png

4.1 參數(shù)配置

在 Connetivity 中選擇 SDIO 設(shè)置,并選擇 SD 4 bits Wide bus 四線SD模式

e835e974-f445-11ed-ba01-dac502259ad0.png

此時 SDIO 對應(yīng)的管腳也被選中。

e89af7ce-f445-11ed-ba01-dac502259ad0.png

在 Parameter Settings 進行具體參數(shù)配置。

Clock transition on which the bit capture is made:Rising transition。主時鐘 SDIOCLK 產(chǎn)生 CLK 引腳時鐘有效沿選擇,可選上升沿或下降沿,它設(shè)定 SDIO 時鐘控制寄存器(SDIO_CLKCR)的 NEGEDGE 位的值,一般選擇設(shè)置為上升沿。

SDIO Clock divider bypass:Disable。時鐘分頻旁路使用,可選使能或禁用,它設(shè)定 SDIO_CLKCR 寄存器的 BYPASS 位。如果使能旁路,SDIOCLK 直接驅(qū)動 CLK 線輸出時鐘;如果禁用,使用 SDIO_CLKCR 寄存器的 CLKDIV 位值分頻 SDIOCLK,然后輸出到 CLK 線。一般選擇禁用時鐘分頻旁路。

SDIO Clock output enable when the bus is idle:Disable the power save for the clock。節(jié)能模式選擇,可選使能或禁用,它設(shè)定 SDIO_CLKCR 寄存器的 PWRSAV 位的值。如果使能節(jié)能模式,CLK 線只有在總線激活時才有時鐘輸出;如果禁用節(jié)能模式,始終使能 CLK 線輸出時鐘。

SDIO hardware flow control:The hardware control flow is disabled。硬件流控制選擇,可選使能或禁用,它設(shè)定 SDIO_CLKCR 寄存器的 HWFC_EN 位的值。硬件流控制功能可以避免 FIFO 發(fā)送上溢和下溢錯誤。

SDIOCLK clock divide factor:6。時鐘分頻系數(shù),它設(shè)定 SDIO_CLKCR 寄存器的 CLKDIV 位的值,設(shè)置 SDIOCLK 與 CLK 線輸出時鐘分頻系數(shù):CLK 線時鐘頻率=SDIOCLK/([CLKDIV+2])。

SDIO_CK 引腳的時鐘信號在卡識別模式時要求不超過 400KHz,而在識別后的數(shù)據(jù)傳輸模式時則希望有更高的速度(最大不超過 25MHz),所以會針對這兩種模式配置 SDIOCLK 的時鐘。

這里參數(shù)描述建議將SDIOCLK clock divede factor 參數(shù)使用默認值為0,SDIOCLK為72MHz,可以得到最大頻率36MHz,但請注意,有些型號的SD卡可能不支持36MHz這么高的頻率,所以還是要以實際情況而定。

4.2 配置DMASDIO 外設(shè)支持生成 DMA 請求,使用 DMA 傳輸可以提高數(shù)據(jù)傳輸效率,因此在 SDIO 的控制代碼中,可以把它設(shè)置為 DMA 傳輸模式或輪詢模式,ST 標準庫提供 SDIO 示例中針對這兩個模式做了區(qū)分處理。應(yīng)用中一般都使用DMA 傳輸模式。點擊 DMA Settings 添加 SDIO 對應(yīng) DMA2 的通道4。DMA模式選擇循環(huán)模式,方向選為內(nèi)存到外設(shè)。e8c9a182-f445-11ed-ba01-dac502259ad0.png

Priority:當發(fā)生多個 DMA 通道請求時,就意味著有先后響應(yīng)處理的順序問題,這個就由仲裁器也管理。仲裁器管理 DMA 通道請求分為兩個階段。第一階段屬于軟件階段,可以在 DMA_CCRx 寄存器中設(shè)置,有 4 個等級:非常高、高、中和低四個優(yōu)先級。第二階段屬于硬件階段,如果兩個或以上的 DMA 通道請求設(shè)置的優(yōu)先級一樣,則他們優(yōu)先級取決于通 道編號,編號越低優(yōu)先權(quán)越高,比如通道 0 高于通道 1。在大容量產(chǎn)品和互聯(lián)型產(chǎn)品中,DMA1 控制器擁有高于 DMA2 控制器的優(yōu)先級。

Mode:Normal 表示單次傳輸,傳輸一次后終止傳輸。Circular 表示循環(huán)傳輸,傳輸完成后又重新開始繼續(xù)傳輸,不斷循環(huán)永不停止。

Increment Address:Peripheral 表示外設(shè)地址自增。Memory 表示內(nèi)存地址自增。Data Width:Byte 一個字節(jié)。Half Word 半個字,等于兩字節(jié)。Word 一個字,等于四字節(jié)。

4.3 配置NVIC

首先SD可以開啟DMA讀取或者單純的SD的中斷,但是其中優(yōu)先級一定要為 SD > SD DMA Rx/Tx > USB,不然當SD卡在讀寫的時候被其他中斷打斷,會直接導(dǎo)致U盤掉盤,中途卡頓。

e8f4e2a2-f445-11ed-ba01-dac502259ad0.png五、生成代碼六、修改usbd_storage_if.c

打開工程文件夾usbd_storage_if.c文件

e92c5084-f445-11ed-ba01-dac502259ad0.png6.1 聲明SD卡句柄

/* USER CODE BEGIN EXPORTED_VARIABLES */extern SD_HandleTypeDef hsd;/*USERCODEENDEXPORTED_VARIABLES*/

6.2 修改獲取SD卡容量信息函數(shù)

/** * @brief . * @param lun: . * @param block_num: . * @param block_size: . * @retval USBD_OK if all operations are OK else USBD_FAIL */int8_t STORAGE_GetCapacity_FS(uint8_t lun, uint32_t *block_num, uint16_t *block_size){ /* USER CODE BEGIN 3 */ HAL_SD_CardInfoTypeDef info; if(HAL_SD_GetCardState(&hsd) == HAL_SD_CARD_TRANSFER) { HAL_SD_GetCardInfo(&hsd, &info); *block_num = info.LogBlockNbr; *block_size = info.LogBlockSize; return USBD_OK; } return USBD_FAIL; /* USER CODE END 3 */}

6.3 修改存儲讀寫函數(shù)

/** * @brief . * @param lun: . * @retval USBD_OK if all operations are OK else USBD_FAIL */int8_t STORAGE_Read_FS(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len){ /* USER CODE BEGIN 6 */ int8_t ret = USBD_FAIL; if(HAL_SD_ReadBlocks(&hsd, buf, blk_addr, blk_len, HAL_MAX_DELAY) == HAL_OK) { ret = USBD_OK; while(HAL_SD_GetState(&hsd) == HAL_SD_STATE_BUSY); while HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER); } return ret; /* USER CODE END 6 */}

/** * @brief . * @param lun: . * @retval USBD_OK if all operations are OK else USBD_FAIL */int8_t STORAGE_Write_FS(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len){ /* USER CODE BEGIN 7 */ int8_t ret = USBD_FAIL; if(HAL_SD_WriteBlocks(&hsd, buf, blk_addr, blk_len, HAL_MAX_DELAY) == HAL_OK) { ret = USBD_OK; while(HAL_SD_GetState(&hsd) == HAL_SD_STATE_BUSY); while(HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER); } return ret; /* USER CODE END 7 */}

七、查看效果

編譯工程,下載到板子上,插上USB線連接到電腦上,識別出為大容量存儲設(shè)備。

e965e682-f445-11ed-ba01-dac502259ad0.png

注意:如果設(shè)備帶有感嘆號,則參考下面八、注意事項。

e9917b76-f445-11ed-ba01-dac502259ad0.png

彈出格式化對話框,直接格式化就行,文件系統(tǒng)選擇FAT模式。

e9b54538-f445-11ed-ba01-dac502259ad0.pnge9d49a32-f445-11ed-ba01-dac502259ad0.png

新建一個文檔,名為測試.txt。然后在文檔中輸入一些內(nèi)容。

e9ff291e-f445-11ed-ba01-dac502259ad0.png

重新上電斷開后再次打開U盤看里面的內(nèi)容和已用空間。

ea12dc20-f445-11ed-ba01-dac502259ad0.png八、注意事項

用戶代碼要加在 USER CODE BEGIN N 和 USER CODE END N 之間,否則下次使用 STM32CubeMX 重新生成代碼后,會被刪除。

ea366546-f445-11ed-ba01-dac502259ad0.png如果USB端口出現(xiàn)感嘆號設(shè)備無法啟動的問題,可適當將堆改大,如0x400ea4fd6ac-f445-11ed-ba01-dac502259ad0.pngea6ac5de-f445-11ed-ba01-dac502259ad0.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    8177

    瀏覽量

    272652
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11031

    瀏覽量

    364566
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    ART-PI H750-USB-MSC設(shè)備描述符異常的原因?怎么解決?

    主控:STM32H750XBH6- ART-Pi 開發(fā)環(huán)境:CubeMX+MDK V5.27問題背景:當前已經(jīng)調(diào)試通SD+Fatfs文件系統(tǒng),(通過主控來
    發(fā)表于 06-19 06:52

    STM32系統(tǒng)】基于STM32設(shè)計的SD數(shù)據(jù)讀取與上位機顯示系統(tǒng)(SDIO接口驅(qū)動、雷龍貼片SD

    、USART、USB等,特別是支持SDIO接口,使其非常適合應(yīng)用于需要與SD進行高速通信的場景中。   STM32F103的核心采用了Co
    發(fā)表于 05-09 16:11

    使用STM32CubeMX進行配置USB的時候,有哪些小的需要注意的細節(jié)?

    在使用STM32CubeMX進行配置USB的時候,是參照例程進行的配置,自己配置的就是沒有成功,例程就滅有問題,總感覺哪里沒有打開?有人遇到過需要注意的小細節(jié)嗎?
    發(fā)表于 04-23 06:54

    STM32開發(fā)入門進階必備!《STM32嵌入式系統(tǒng)開發(fā)—基于STM32CubeMXHAL》新書發(fā)布!

    近日,由華清遠見教育科技集團精心編撰的教育部高等學(xué)校電子信息類專業(yè)教學(xué)指導(dǎo)委員會規(guī)劃教材、普通高等教育電子信息類專業(yè)系列教材——《STM32嵌入式系統(tǒng)開發(fā)—基于STM32CubeMXHAL
    的頭像 發(fā)表于 04-03 14:54 ?718次閱讀
    <b class='flag-5'>STM32</b>開發(fā)入門進階必備!《<b class='flag-5'>STM32</b>嵌入式系統(tǒng)開發(fā)—基于<b class='flag-5'>STM32CubeMX</b>和<b class='flag-5'>HAL</b><b class='flag-5'>庫</b>》新書發(fā)布!

    通過FATFS文件系統(tǒng)讀寫SD創(chuàng)建文件可以了,加入MSC一直顯示一個沒有格式化的U盤符,也不能格式化,為什么?

    通過FATFS文件系統(tǒng)讀寫SD創(chuàng)建文件可以了,但加入MSC,一直顯示一個沒有格式化的U盤符,也不能格式化,這是什么問題導(dǎo)致的
    發(fā)表于 03-12 07:20

    myST賬號無法注冊導(dǎo)致stm32cubemx無法下載hal的固件包,為什么?

    myST賬號無法注冊導(dǎo)致stm32cubemx無法下載hal的固件包,myST賬號注冊卡在最后的郵箱驗證環(huán)節(jié),一直著無法注冊通過 很急很急!以前
    發(fā)表于 03-11 06:17

    STM32CubeMX生成STM32mp135D的USART1,2,3,6代碼初始化是空的,為什么?

    STM32CubeMX生成STM32mp135D的USART1,2,3,6代碼初始化是空的,參考其他代碼做了初始化操作,可以通過HAL_USART_Transmit接口發(fā)送數(shù)據(jù),但是
    發(fā)表于 03-07 07:48

    STM32CubeMX用于STM32配置和初始化C代碼生成

    電子發(fā)燒友網(wǎng)站提供《STM32CubeMX用于STM32配置和初始化C代碼生成.pdf》資料免費下載
    發(fā)表于 02-26 17:32 ?677次下載

    工程師開發(fā)利器:STM32CubeMX 與 eDesignSuite 的協(xié)同開發(fā)

    HAL 實現(xiàn)高效控制。示例:通過 CubeMX 配置 PWM 輸出和 ADC 采樣,配合 eDesignSuite 的電機驅(qū)動算法,快速實現(xiàn)電機調(diào)速功能。系統(tǒng)級驗證與優(yōu)化利用 STM32C
    的頭像 發(fā)表于 02-26 14:07 ?732次閱讀
    工程師開發(fā)利器:<b class='flag-5'>STM32CubeMX</b> 與 eDesignSuite 的協(xié)同開發(fā)

    《DNESP32S3使用指南-IDF版_V1.6》第四十六章 SD模擬U實驗

    第四十六章 SD模擬U實驗 本章我們介紹ESP32S3的USB HOST應(yīng)用,即通過
    發(fā)表于 02-07 09:15

    STM32CubeMX生成的代碼,是怎樣的HAL架構(gòu)?

    需要注意,CubeMX只是一個初始化工具,它只是幫你完成了HAL外設(shè)和時鐘的初始化,具體程序的編寫還需要查閱HAL的說明,使用相關(guān)函數(shù)實
    的頭像 發(fā)表于 01-01 21:01 ?806次閱讀
    <b class='flag-5'>STM32CubeMX</b>生成的代碼,是怎樣的<b class='flag-5'>HAL</b>架構(gòu)?

    STM32CubeMX的菜單介紹

    相信初學(xué)者打開STM32CubeMX一定是一臉懵逼,里面都是全英文的,不知道從何入手。這里先給大家簡單講解一下。在新建工程這一欄里,我們最常用的是第一個,它會彈出一個芯片列表供你選擇,然后就會創(chuàng)建一
    的頭像 發(fā)表于 12-25 21:03 ?475次閱讀
    <b class='flag-5'>STM32CubeMX</b>的菜單介紹

    HALSTM32開發(fā)中的重要性

    開發(fā)過程 HAL提供了一套完整的函數(shù)接口,用于操作STM32微控制器的各種外設(shè)和功能模塊。這些函數(shù)接口封裝了底層硬件的復(fù)雜性,使得開發(fā)者無
    的頭像 發(fā)表于 12-02 13:35 ?1324次閱讀

    如何快速入門HAL編程 HAL與裸機編程的比較

    。 選擇開發(fā)環(huán)境和工具 : 下載并安裝適用于目標微控制器的IDE(如STM32CubeIDE)。 配置開發(fā)環(huán)境,包括編譯器、調(diào)試器等。 學(xué)習(xí)HAL文檔和教程 : 閱讀官方HAL
    的頭像 發(fā)表于 12-02 11:39 ?1114次閱讀

    myST賬號無法注冊導(dǎo)致stm32cubemx無法下載hal的固件怎么解決?

    myST賬號無法注冊導(dǎo)致stm32cubemx無法下載hal的固件包,myST賬號注冊卡在最后的郵箱驗證環(huán)節(jié),一直著無法注冊通過 很急很急!以前
    發(fā)表于 07-23 08:05