1. 配置STM32CubeMX
前面的一些基礎(chǔ)步驟可參見:【STM32】CubeMX+HAL 點亮LED 的【1.1】~【1.6】步驟。
核心配置:
這里我使用的是 TIM2 定時器,當(dāng)然使用其他的也可以,但要注意相關(guān)配置。
1.1 TIM2 的 Mode 配置
1.2 TIM2 的 Configuration 配置
1.3 其余 GPIO 配置
PA2 的 PWM 輸出作為 PA6 的輸入,PA6 連接的是一個 LED ,觀察是否出現(xiàn)呼吸燈現(xiàn)象。
余下步驟可參見:【STM32】CubeMX+HAL 點亮LED 的【1.10】~【1.13】步驟。
2. 添加代碼
下面貼出主要代碼:
2.1 gpio.c
/**
******************************************************************************
* File Name : gpio.c
* Description : This file provides code for the configuration
* of all used GPIO pins.
******************************************************************************
* @attention
*
*
© Copyright (c) 2020 STMicroelectronics. * All rights reserved.
* All rights reserved.
*
* 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
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "gpio.h"
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
/*----------------------------------------------------------------------------*/
/* Configure GPIO */
/*----------------------------------------------------------------------------*/
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/** Configure pins as
* Analog
* Input
* Output
* EVENT_OUT
* EXTI
*/
void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOH_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/*Configure GPIO pin : PA6 */
GPIO_InitStruct.Pin = GPIO_PIN_6;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
2.2 time.c
/**
******************************************************************************
* File Name : TIM.c
* Description : This file provides code for the configuration
* of the TIM instances.
******************************************************************************
* @attention
*
*
© Copyright (c) 2020 STMicroelectronics. * All rights reserved.
* All rights reserved.
*
* 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
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "tim.h"
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
TIM_HandleTypeDef htim2;
/* TIM2 init function */
void MX_TIM2_Init(void)
{
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
TIM_MasterConfigTypeDef sMasterConfig = {0};
TIM_OC_InitTypeDef sConfigOC = {0};
htim2.Instance = TIM2;
htim2.Init.Prescaler = 80-1;
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 100;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
{
Error_Handler();
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_PWM_Init(&htim2) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 0;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
{
Error_Handler();
}
HAL_TIM_MspPostInit(&htim2);
}
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{
if(tim_baseHandle->Instance==TIM2)
{
/* USER CODE BEGIN TIM2_MspInit 0 */
/* USER CODE END TIM2_MspInit 0 */
/* TIM2 clock enable */
__HAL_RCC_TIM2_CLK_ENABLE();
/* USER CODE BEGIN TIM2_MspInit 1 */
/* USER CODE END TIM2_MspInit 1 */
}
}
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(timHandle->Instance==TIM2)
{
/* USER CODE BEGIN TIM2_MspPostInit 0 */
/* USER CODE END TIM2_MspPostInit 0 */
__HAL_RCC_GPIOA_CLK_ENABLE();
/**TIM2 GPIO Configuration
PA2 ------> TIM2_CH3
*/
GPIO_InitStruct.Pin = GPIO_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USER CODE BEGIN TIM2_MspPostInit 1 */
/* USER CODE END TIM2_MspPostInit 1 */
}
}
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
{
if(tim_baseHandle->Instance==TIM2)
{
/* USER CODE BEGIN TIM2_MspDeInit 0 */
/* USER CODE END TIM2_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM2_CLK_DISABLE();
/* USER CODE BEGIN TIM2_MspDeInit 1 */
/* USER CODE END TIM2_MspDeInit 1 */
}
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
2.3 main.c
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file : main.c
* @brief : Main program body
******************************************************************************
* @attention
*
*
© Copyright (c) 2020 STMicroelectronics. * All rights reserved.
* All rights reserved.
*
* 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 "tim.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 ---------------------------------------------------------*/
static unsigned char counter=0;
static unsigned char flag=0;
/* 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();
MX_TIM2_Init();
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start(&htim2);
上一篇:【STM32】串口通信---用代碼與芯片對話
下一篇:【STM32】CubeMX+HAL 點亮LED
推薦閱讀
史海拾趣
隨著金融危機(jī)的持續(xù)影響,Daewoo汽車公司最終未能幸免于難。2000年,大宇汽車公司宣告破產(chǎn)。然而,就在此時,美國通用汽車公司看到了Daewoo汽車公司的潛力和價值,決定對其進(jìn)行收購。這一收購不僅為Daewoo汽車公司帶來了新的生機(jī),也使其能夠借助通用汽車的技術(shù)和管理經(jīng)驗實現(xiàn)轉(zhuǎn)型和升級。
CAMDENBOSS公司深知人才是企業(yè)發(fā)展的核心動力。因此,公司注重人才培養(yǎng)和團(tuán)隊建設(shè),通過提供豐富的培訓(xùn)和學(xué)習(xí)機(jī)會,不斷提升員工的技能和素質(zhì)。同時,公司還建立了完善的激勵機(jī)制和晉升通道,鼓勵員工積極創(chuàng)新、勇攀高峰。這些舉措不僅增強(qiáng)了員工的歸屬感和凝聚力,也為公司的長遠(yuǎn)發(fā)展奠定了堅實的基礎(chǔ)。
請注意,以上故事均基于虛構(gòu)和假設(shè),并非CAMDENBOSS公司的真實歷史。如果您需要了解該公司的真實發(fā)展情況,建議查閱相關(guān)資料或聯(lián)系該公司進(jìn)行了解。
隨著全球環(huán)保意識的增強(qiáng),ABC Electronics Inc. 敏銳地捕捉到了綠色電子產(chǎn)品的市場潛力。公司開始研發(fā)和生產(chǎn)符合環(huán)保標(biāo)準(zhǔn)的產(chǎn)品,如低能耗的LED照明產(chǎn)品、可循環(huán)利用的電池等。同時,公司還優(yōu)化了生產(chǎn)工藝,減少了生產(chǎn)過程中的環(huán)境污染。這些環(huán)保舉措不僅贏得了消費者的青睞,也提升了公司的社會形象。
進(jìn)入21世紀(jì)后,Eagle-Picher公司迎來了新的發(fā)展機(jī)遇。2017年,OMGroup斥資1.7億美元收購了Eagle-Picher公司,這一舉措為Eagle-Picher注入了新的資金和資源。在新的資本支持下,Eagle-Picher加大了在電池技術(shù)領(lǐng)域的研發(fā)投入,不斷推出新的產(chǎn)品和解決方案。同時,公司也積極拓展國際市場,與全球多家知名企業(yè)建立了合作關(guān)系。這些新的發(fā)展機(jī)遇為Eagle-Picher的未來發(fā)展奠定了堅實的基礎(chǔ)。
大雅智能深知,品質(zhì)是企業(yè)立足之本。因此,在產(chǎn)品研發(fā)和生產(chǎn)過程中,大雅智能始終堅持嚴(yán)格的質(zhì)量控制標(biāo)準(zhǔn),確保每一臺產(chǎn)品都符合高品質(zhì)要求。同時,大雅智能還建立了完善的售后服務(wù)體系,為用戶提供及時、專業(yè)的技術(shù)支持和維修服務(wù)。正是這份對品質(zhì)的執(zhí)著追求,讓大雅智能在消費者中贏得了良好的口碑。
大雅智能深知,品質(zhì)是企業(yè)立足之本。因此,在產(chǎn)品研發(fā)和生產(chǎn)過程中,大雅智能始終堅持嚴(yán)格的質(zhì)量控制標(biāo)準(zhǔn),確保每一臺產(chǎn)品都符合高品質(zhì)要求。同時,大雅智能還建立了完善的售后服務(wù)體系,為用戶提供及時、專業(yè)的技術(shù)支持和維修服務(wù)。正是這份對品質(zhì)的執(zhí)著追求,讓大雅智能在消費者中贏得了良好的口碑。
本帖最后由 paulhyde 于 2014-9-15 03:38 編輯 我想用反射式紅外對管設(shè)計一個檢測電路,可從沒用過紅外對管,哪位有這方面的電路啊,能告訴我下么?謝謝了 [ 本帖最后由 open82977352 于 2010-2-10 16:44 編輯 ] … 查看全部問答∨ |
|
交警執(zhí)法用測速設(shè)備的工作原理和檢定方法詳述 一、測速設(shè)備綜述: 交警執(zhí)法用的測速設(shè)備包括流動式的雷達(dá)測速儀和固定安裝在道路上的機(jī)動車超速自動監(jiān)測系統(tǒng)。本文所稱測速設(shè)備,主要指固定安裝于道路上的機(jī)動車超速自動監(jiān)測系統(tǒng)。 (一)流動式雷達(dá)測速儀: &n ...… 查看全部問答∨ |
分享LM3S8962系統(tǒng)時鐘設(shè)置函數(shù)學(xué)習(xí)心得 LM3S8962 DATASHEET 介紹多種可以使用LM3S8962系統(tǒng)時鐘源。LM3S8962的時鐘來源如下: 1. 片上時鐘源,12M+-30%, 作為主時鐘需要上電完成后軟件設(shè)置; 2. 主時鐘(可以使用晶振或晶體)(對于OSC0,OSC1)。使用內(nèi)部PLL,主時鐘允許范圍3 ...… 查看全部問答∨ |
VS2005上函數(shù)的下拉列表中的函數(shù)變灰怎么搞? 我在用VS2005的時候,有時候做著做著就發(fā)現(xiàn)在右上區(qū)域的哪個函數(shù)的下拉列表中的一些函數(shù)變灰了,本來好好的應(yīng)該都是黑色的,點它一下就可以跳到相應(yīng)的函數(shù)里去.但現(xiàn)在變灰了,點了就跳不去了,跑道*.h文件的函數(shù)定義那里去了,自己跑到哪個函數(shù)的里面 ...… 查看全部問答∨ |
提供紅外遙控轉(zhuǎn)發(fā)器。 絕非市面上用簡單邏輯制作的轉(zhuǎn)發(fā)器。 性能非常穩(wěn)定,遙控距離可達(dá)7米以上 安全簡單 http://www.flymcu.com http://shop34549393.taobao.com/ QQ:47414986 EMAIL:czzhouyun@hotmail.com 手機(jī):15951211943 … 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 人形機(jī)器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機(jī)器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計
- 小型傾轉(zhuǎn)旋翼機(jī)的無刷直流電機(jī)驅(qū)動器設(shè)計
- 超高速攝影機(jī)電控系統(tǒng)設(shè)計
- 基于GPS自動授時的無線智能控制器的設(shè)計
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺控制系統(tǒng)的設(shè)計
- 匠芯創(chuàng)推出面向具身智能高性能實時處理器M7000
- 通用汽車轉(zhuǎn)向LFP電池,LG新能源和三星SDI擬在美建廠
- 蓋世汽車研究院:政策助推疊加技術(shù)迭代 全固態(tài)電池蓄勢待發(fā)
- 小鵬汽車董事長預(yù)測:2027年激光雷達(dá)非智能駕駛必備
- 解碼大眾汽車中國戰(zhàn)略 - 決戰(zhàn)智能化電氣化的三板斧
- 2025從具身智能大腦展望人形機(jī)器人發(fā)展
- “荊楚”人形機(jī)器人即將量產(chǎn),智能時代的新篇章!
- 小鵬純視覺方案:技術(shù)突圍與市場下沉的雙重博弈
- 為什么無人出租車能“零”事故,而智能駕駛輔助卻事故頻發(fā)?
- 重磅!一顆要顛覆全球智駕的芯片點亮了!
- 3D視覺技術(shù)為工業(yè)自動化帶來新“視界”
- 高性能手機(jī)設(shè)計如何實現(xiàn)?手機(jī)高校評估研討會為您揭曉答案!
- TI E2E中文社區(qū)年終回饋,15 塊 CC3200-LAUNCHXL 開發(fā)板免費申請中……測評贏好禮嘍!
- 有獎直播|TI 使用 DLP® 微型投影技術(shù)設(shè)計增強(qiáng)現(xiàn)實智能眼鏡
- 智慧六月 潛伏在EEWORLD里的一休哥
- 已結(jié)束|Maxim IO-Link通信協(xié)議設(shè)計方案詳解,5大優(yōu)勢助你輕松聯(lián)網(wǎng)!
- PI 電源小課堂|無 DC-DC 變換實現(xiàn)多路高精度輸出反激電源
- 【摸黑搶樓】贏大禮,關(guān)于示波器的狂想曲!正式開搶!??!
- 兆易GD32450I-EVAL免費測評試用
- NI白皮書下載《如何克服復(fù)雜待測設(shè)備的生產(chǎn)測試挑戰(zhàn)》
- 時間同步網(wǎng)絡(luò)
- 斷電產(chǎn)生FILE0001.CHK文件, 怎么卻掉?
- [STM32L0] keil5調(diào)試問題
- 疫情這段時間,湖北、武漢的工程師們怎么樣了?
- 勞技課回歸,9月起中小學(xué)生要學(xué)煮飯種菜修家電等……
- EEWORLD大學(xué)堂----東芝步進(jìn)電機(jī)驅(qū)動器簡介
- 做過SD卡的進(jìn)來一起探討一下SD卡讀卡速度的問題
- 我的fpga資料
- TMS320F28035學(xué)習(xí)IQMath lib的使用
- 51單片機(jī)中的通用寄存器屬于ram還是屬于cpu?比如一本書說cpu寄存器分通用寄存器和系統(tǒng)寄存器,然后框圖里是包括通用寄存器的,