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

【STM32】基礎(chǔ)知識(shí) 第十課 CubeMx

這篇具有很好參考價(jià)值的文章主要介紹了【STM32】基礎(chǔ)知識(shí) 第十課 CubeMx。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

STM32 CubeMX 簡(jiǎn)介

CubeMX (全稱(chēng) STM32CubeMX) 是 ST 公司推出的一款用于 STM32 微控制器配置的圖形化工具. 它能幫助開(kāi)發(fā)者通過(guò)直觀的圖像界面快速完成 STM32 微控制器的硬件配置, 外設(shè)初始化以及中間件設(shè)置等工作. 通過(guò) CubeMX, 開(kāi)發(fā)者可以大幅提高開(kāi)發(fā)效率, 降低開(kāi)發(fā)難度, 尤其是對(duì)于剛接觸 STM32 的新手.

CubeMX 的主要功能和特點(diǎn)如下:

  1. 硬件配置: 通過(guò)圖形化界面, 我們可以方便地配置 STM32 微控制器的引腳, 時(shí)鐘樹(shù)以及電源設(shè)置等, 無(wú)需手動(dòng)查閱數(shù)據(jù)手冊(cè)
  2. 外設(shè)初始化: 支持 STM32 系列微控制器的各種外設(shè), 包括定時(shí)器, UART, I2C, SPI 等. 我們可以通過(guò)簡(jiǎn)單的操作, 對(duì)外設(shè)進(jìn)行參數(shù)設(shè)置和功能配置
  3. 中間件設(shè)置: 內(nèi)置了 ST 公司提供的各種中間件, 如 FreeRTOS, LwIP, USB Device 等. 我們可以通過(guò) CubeMX 輕松地為項(xiàng)目添加所需的中間件
  4. 代碼生成: 根據(jù)配置的硬件和外設(shè)參數(shù), CubeMX 可以自動(dòng)生成初始化代碼, 支持不同的 IDE, 如 AR, Keil, STM32CubeIDE 等. 生成的代碼遵循 HAL 庫(kù)標(biāo)準(zhǔn), 方便開(kāi)發(fā)者進(jìn)行二次開(kāi)發(fā)
  5. 項(xiàng)目管理: 可以創(chuàng)建, 打開(kāi)和保存項(xiàng)目, 方便開(kāi)發(fā)者對(duì)多個(gè)項(xiàng)目進(jìn)行管理. 同時(shí), 還指出導(dǎo)入已有的項(xiàng)目, 便于后續(xù)的項(xiàng)目維護(hù)和優(yōu)化

【STM32】基礎(chǔ)知識(shí) 第十課 CubeMx

安裝 JAVA

【STM32】基礎(chǔ)知識(shí) 第十課 CubeMx

查看是否安裝成功:
【STM32】基礎(chǔ)知識(shí) 第十課 CubeMx

CubeMX 安裝

【STM32】基礎(chǔ)知識(shí) 第十課 CubeMx

新建 STM32 CubeMX 工程步驟

  1. 工程初步建立: 新建工程, 選擇芯片型號(hào)
  2. 時(shí)鐘模塊配置: 設(shè)置 HSE, LSE, MCO
  3. 時(shí)鐘系統(tǒng)配置: PLL, SYSCLK, AHB, APB1, APB2 等等
  4. GPIO 引腳配置: 以連接在 LED 燈的 IO 為例介紹如何配置
  5. Cortex 內(nèi)核配置: SYS (DEBUG) 配置, NVIC (優(yōu)先級(jí)分組)
  6. 生成工程源碼: 設(shè)置工程, MDK 等, 最后生成代碼工程
  7. 編寫(xiě)用戶程序: 在 main.c 文件預(yù)留的位置編寫(xiě)代碼

新建工程

新建工程:
【STM32】基礎(chǔ)知識(shí) 第十課 CubeMx
選擇芯片:
【STM32】基礎(chǔ)知識(shí) 第十課 CubeMx

時(shí)鐘模塊配置

【STM32】基礎(chǔ)知識(shí) 第十課 CubeMx
配置時(shí)鐘:
【STM32】基礎(chǔ)知識(shí) 第十課 CubeMx

GPIO 配置

【STM32】基礎(chǔ)知識(shí) 第十課 CubeMx

生成源碼

【STM32】基礎(chǔ)知識(shí) 第十課 CubeMx文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-453002.html

main.c

/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file           : main.c
  * @brief          : Main program body
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
  * All rights reserved.</center></h2>
  *
  * This software component is licensed by ST under BSD 3-Clause license,
  * the "License"; You may not use this file except in compliance with the
  * License. You may obtain a copy of the License at:
  *                        opensource.org/licenses/BSD-3-Clause
  *
  ******************************************************************************
  */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "gpio.h"

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */

/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */

/* USER CODE END PTD */

/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD */

/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */

/* USER CODE END PM */

/* Private variables ---------------------------------------------------------*/

/* USER CODE BEGIN PV */

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
/* USER CODE BEGIN PFP */

/* USER CODE END PFP */

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */

/* USER CODE END 0 */

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET);  /*LED0 PB5置1*/ 
    HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);/*LED1 PE5置0*/ 
    HAL_Delay(500);
    HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET);/*LED0 PB5置1*/
    HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);  /*LED1 PE5置0*/
    HAL_Delay(500);
  }
  /* USER CODE END 3 */
}

/**
  * @brief System Clock Configuration
  * @retval None
  */
void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  /** Initializes the RCC Oscillators according to the specified parameters
  * in the RCC_OscInitTypeDef structure.
  */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    Error_Handler();
  }

  /** Initializes the CPU, AHB and APB buses clocks
  */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
  {
    Error_Handler();
  }
}

/* USER CODE BEGIN 4 */

/* USER CODE END 4 */

/**
  * @brief  This function is executed in case of error occurrence.
  * @retval None
  */
void Error_Handler(void)
{
  /* USER CODE BEGIN Error_Handler_Debug */
  /* User can add his own implementation to report the HAL error return state */

  /* USER CODE END Error_Handler_Debug */
}

#ifdef  USE_FULL_ASSERT
/**
  * @brief  Reports the name of the source file and the source line number
  *         where the assert_param error has occurred.
  * @param  file: pointer to the source file name
  * @param  line: assert_param error line source number
  * @retval None
  */
void assert_failed(uint8_t *file, uint32_t line)
{
  /* USER CODE BEGIN 6 */
  /* User can add his own implementation to report the file name and line number,
     tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  /* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */

到了這里,關(guān)于【STM32】基礎(chǔ)知識(shí) 第十課 CubeMx的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【STM32】基礎(chǔ)知識(shí) 第十五課 看門(mén)狗 IWDG 深入理解與應(yīng)用

    【STM32】基礎(chǔ)知識(shí) 第十五課 看門(mén)狗 IWDG 深入理解與應(yīng)用

    STM32 系列單片機(jī)具有強(qiáng)大的內(nèi)置功能, 其中之一就是獨(dú)立看門(mén)口 (IWDG). 看門(mén)狗定時(shí)器是一種重要的硬件設(shè)備, 用于防止系統(tǒng)軟件故障. 在許多應(yīng)用中, 看門(mén)狗定時(shí)器的使用是至關(guān)重要的, 它可以檢測(cè)和解決軟件錯(cuò)誤, 提高系統(tǒng)的可靠性. 今天小白將帶領(lǐng)大家深入探討 STM32 獨(dú)立看門(mén)

    2024年02月11日
    瀏覽(17)
  • STM32-02-STM32基礎(chǔ)知識(shí)

    STM32-02-STM32基礎(chǔ)知識(shí)

    STM32F103 STM32F103是ST公司基于ARM授權(quán)Cortex M3內(nèi)核而設(shè)計(jì)的一款芯片,而 Cortex M內(nèi)核 使用的是 ARM v7-M架構(gòu) ,是為了替代老舊的單片機(jī)而量身定做的一個(gè)內(nèi)核,具有低成本、低功耗、實(shí)時(shí)性好、中斷響應(yīng)快、處理效率高等特點(diǎn)。 架構(gòu) 、 內(nèi)核 、 芯片 的關(guān)系: 架構(gòu) : (ARMv7-M)

    2024年02月03日
    瀏覽(21)
  • 【STM32】基礎(chǔ)知識(shí) 第二課 初識(shí) STM32

    【STM32】基礎(chǔ)知識(shí) 第二課 初識(shí) STM32

    ARM 公司: 只做內(nèi)核設(shè)計(jì)和 IP 授權(quán), 不參與芯片設(shè)計(jì). 對(duì)比項(xiàng) Cortex-A (Application) Cortex-R (Real-time) Cortex-M (Microcontroller) 特點(diǎn) 高時(shí)鐘頻率, 長(zhǎng)流水線, 高性能 較高時(shí)鐘頻率, 較長(zhǎng)的流水線, 實(shí)時(shí)性強(qiáng) 時(shí)鐘頻率較低, 通常較短的流水線, 超低功耗 應(yīng)用場(chǎng)景 移動(dòng)計(jì)算, 智能手機(jī), 平板電腦

    2024年02月02日
    瀏覽(42)
  • 【STM32】基礎(chǔ)知識(shí) 第五課 C 語(yǔ)言基礎(chǔ)知識(shí)

    【STM32】基礎(chǔ)知識(shí) 第五課 C 語(yǔ)言基礎(chǔ)知識(shí)

    stdint.h 是從 C99 中引進(jìn)的一個(gè)標(biāo)準(zhǔn) C 庫(kù)的文件. 路徑: “D:MDK5.34ARMARMCCinclude” 運(yùn)算符 含義 運(yùn)算符 含義 按位與 ~ 按位取反 | 按位或 左移 ^ 按位異或 右移 按位與: num1 運(yùn)算符 num2 結(jié)果 0 0 0 1 0 0 0 1 0 1 1 1 按位或: num1 運(yùn)算符 num2 結(jié)果 0 | 0 0 1 | 0 1 0 | 1 1 1 | 1 1 按位異或: num1 運(yùn)算符

    2024年02月13日
    瀏覽(52)
  • stm32中斷的基礎(chǔ)知識(shí)

    stm32中斷的基礎(chǔ)知識(shí)

    某些事件可能需要CPU暫停目前的程序優(yōu)先處理 實(shí)現(xiàn)CPU暫停當(dāng)前的程序并優(yōu)先處理某一事件的機(jī)制稱(chēng)作中斷 處理這一事件的程序叫做中斷服務(wù)程序(Interrupt Handler) 中斷的硬件實(shí)現(xiàn) 內(nèi)部或外部信號(hào)產(chǎn)生中斷 —程序跳轉(zhuǎn)到某一特定地址(中斷向量) —程序從中斷向量跳轉(zhuǎn)到對(duì)

    2023年04月24日
    瀏覽(24)
  • STM32 串口基礎(chǔ)知識(shí)學(xué)習(xí)

    STM32 串口基礎(chǔ)知識(shí)學(xué)習(xí)

    串行通信:數(shù)據(jù)逐位按順序依次傳輸。 并行通信:數(shù)據(jù)各位通過(guò)多條線同時(shí)傳輸。 對(duì)比 傳輸速率:串行通信較低,并行通信較高。 抗干擾能力:串行通信較強(qiáng),并行通信較弱。 通信距離:串行通信較長(zhǎng),并行通信較短。 IO資源占用:串行通信較少,并行通信較多。 成本:

    2024年02月15日
    瀏覽(19)
  • STM32 ADC基礎(chǔ)知識(shí)講解

    STM32 ADC基礎(chǔ)知識(shí)講解

    在正式的學(xué)習(xí)如何編寫(xiě)ADC代碼時(shí)我們先來(lái)學(xué)習(xí)一下ADC的基礎(chǔ)知識(shí)部分,只有掌握好了這些基礎(chǔ)知識(shí)才能順利的進(jìn)行后面的代碼編寫(xiě)。 ADC 指的是模數(shù)轉(zhuǎn)換器(Analog-to-Digital Converter),它是一種用于將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)的電子設(shè)備或電路。 模擬信號(hào)是連續(xù)變化的信號(hào),可

    2024年02月09日
    瀏覽(24)
  • STM32 基礎(chǔ)知識(shí)入門(mén) (C語(yǔ)言基礎(chǔ)鞏固)

    STM32 基礎(chǔ)知識(shí)入門(mén) (C語(yǔ)言基礎(chǔ)鞏固)

    1、在不改變其他位的值的狀況下,對(duì)某幾個(gè)位進(jìn)行設(shè)值 這個(gè)場(chǎng)景在單片機(jī)開(kāi)發(fā)中經(jīng)常使用,方法就是先對(duì)需要設(shè)置的位用操作符進(jìn)行清零操作, 然后用|操作符設(shè)值。 比如我要改變 GPIOA 的 CRL 寄存器 bit6(第 6 位)的值為 1,可以先對(duì)寄 存器的值進(jìn)行清零操作: ?然后再與需

    2024年02月01日
    瀏覽(21)
  • 【STM32】基礎(chǔ)知識(shí) 第六課 內(nèi)核 & 架構(gòu)

    【STM32】基礎(chǔ)知識(shí) 第六課 內(nèi)核 & 架構(gòu)

    4 個(gè)主動(dòng)單元 + 4 個(gè)被動(dòng)單元 主動(dòng)單元 被動(dòng)單元 Cortex M3 內(nèi)核 DCode 總線 (D-Bus) 內(nèi)部 FLASH Cortex M3 內(nèi)核系統(tǒng)總線 (S-Bus) 內(nèi)部 SRAM 通用 DMA1 FSMC 通用 DMA2 AHB 到 APB 的橋, 它連接的所有 APB 外設(shè) AHB (Advance High-performance Bus): 高級(jí)高性能總線 APB (Advance Peripheral Bus): 高級(jí)外圍總線 ICode 總線

    2023年04月24日
    瀏覽(33)
  • 【STM32標(biāo)準(zhǔn)庫(kù)】【基礎(chǔ)知識(shí)】程序燒錄

    【STM32標(biāo)準(zhǔn)庫(kù)】【基礎(chǔ)知識(shí)】程序燒錄

    文章基于適用于STM32F4系列,作者使用STM32F401CCU6開(kāi)發(fā)板。 本文章基于此系列和開(kāi)發(fā)板展開(kāi)討論。 我使用的開(kāi)發(fā)板是某寶購(gòu)買(mǎi)的,型號(hào)是STM32F401CCU6 請(qǐng)點(diǎn)這里 燒錄器為同家店鋪制作的STLINK-V2 請(qǐng)點(diǎn)這里 開(kāi)發(fā)板外觀 燒錄器外觀 請(qǐng)去官網(wǎng)下載,傳送門(mén) 全部默認(rèn)安裝即可,注意選擇

    2024年02月09日
    瀏覽(50)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包