在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

基于STM32CUBEMX驅(qū)動(dòng)低壓步進(jìn)器電機(jī)驅(qū)動(dòng)器STSPIN220(3)----定時(shí)器中斷產(chǎn)生指定數(shù)量脈沖

嵌入式單片機(jī)MCU開發(fā) ? 來源:嵌入式單片機(jī)MCU開發(fā) ? 作者:嵌入式單片機(jī)MCU開 ? 2023-12-01 15:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

步進(jìn)電機(jī)控制過程中,為了實(shí)現(xiàn)精確的位置和速度控制,經(jīng)常需要輸出指定數(shù)量的脈沖。這就需要使用定時(shí)器功能來生成PWM脈沖信號(hào)。本文將詳細(xì)介紹如何利用STM32CUBEMX配置定時(shí)器以輸出指定數(shù)量的PWM脈沖。
定時(shí)器是STM32微控制器的一個(gè)重要功能模塊,可用于生成各種定時(shí)和計(jì)數(shù)操作。通過合理配置定時(shí)器的參數(shù)和模式,我們可以實(shí)現(xiàn)精確的脈沖輸出。

最近在弄ST的課程,需要樣片的可以加群申請(qǐng):615061293 。

在這里插入圖片描述

樣品申請(qǐng)

https://www.wjx.top/vm/PpC1kRR.aspx

視頻教學(xué)

https://www.bilibili.com/video/BV1k94y1C7Gw/

完整代碼下載

https://download.csdn.net/download/qq_24312945/88184732

STM32CUBEMX配置

一種比較簡單的方式是利用定時(shí)器中斷來產(chǎn)生固定數(shù)量的脈沖。在這種方法中,我們可以將定時(shí)器配置為PWM輸出模式,并在PWM輸出的中斷中進(jìn)行計(jì)數(shù)操作。當(dāng)計(jì)數(shù)達(dá)到設(shè)定的脈沖個(gè)數(shù)后,我們可以停止PWM輸出,從而實(shí)現(xiàn)精確控制。下面以定時(shí)器1的通道4為例,介紹具體的步驟:
在STM32CUBEMX中,選擇定時(shí)器1,并將其配置為PWM輸出模式。確保選擇了正確的定時(shí)器通道(通道4)。
在這里插入圖片描述

配置定時(shí)器1的時(shí)鐘源和預(yù)分頻因子。根據(jù)應(yīng)用的要求和系統(tǒng)時(shí)鐘頻率,選擇適當(dāng)?shù)臅r(shí)鐘源和預(yù)分頻因子,以獲得所需的脈沖頻率。將定時(shí)器1的時(shí)鐘源和預(yù)分頻因子配置為適合您的應(yīng)用的值。
PWM頻率計(jì)算如下所示。
在這里插入圖片描述

在上述配置中,將定時(shí)器1的預(yù)分頻系數(shù)設(shè)置為48-1,自動(dòng)重載值設(shè)置為1000-1。根據(jù)這些配置,PWM的頻率可以計(jì)算為48,000,000 / ((48-1+1) * (1000-1+1)) = 1000Hz,即1kHz。
在定時(shí)器中,通道的 "pulse"(脈沖)是指定時(shí)器輸出的信號(hào)的一種特性。每個(gè)定時(shí)器通道都可用于生成脈沖信號(hào),而 "pulse" 通常指的是單個(gè)脈沖的持續(xù)時(shí)間。在這種設(shè)置中,我們將脈沖的占空比配置為50%,因此設(shè)置為500-1。
在這里插入圖片描述
當(dāng)PWM脈沖完成時(shí),我們需要觸發(fā)一個(gè)回調(diào)函數(shù)。HAL_TIM_PWM_PulseFinishedCallback函數(shù)是用于在非阻塞模式下處理PWM脈沖完成的回調(diào)函數(shù)。

在這里插入圖片描述

為了觸發(fā)HAL_TIM_PWM_PulseFinishedCallback回調(diào)函數(shù),需要啟用Capture Compare Interrupt中斷。

在這里插入圖片描述

產(chǎn)生固定數(shù)量的PWM

首先,可以定義一個(gè)全局變量,該變量用于控制輸出脈沖的個(gè)數(shù)。通過操作該變量,我們可以在程序中靈活地控制所需的脈沖數(shù)量。

/* USER CODE BEGIN 0 */
void MX_GPIO_Init_mode3(void);
uint16_t STSPIN220_PwmNum;
uint8_t	STSPIN220_flag=0;//電機(jī)完成步數(shù)標(biāo)志位
uint8_t	STSPIN220_Dir_flag=0;//方向
/* USER CODE END 0 */

首先,使用MX_TIM1_Init()初始化定時(shí)器1。
接下來,當(dāng)需要輸出脈沖時(shí),將所需的脈沖數(shù)量賦值給變量STSPIN220_PwmNum。
最后,使用HAL_TIM_PWM_Start_IT(&htim1, TIM_CHANNEL_4)啟動(dòng)定時(shí)器1的PWM中斷輸出。

STSPIN220_PwmNum = 20;
MX_TIM1_Init();
HAL_TIM_PWM_Start_IT(&htim1,TIM_CHANNEL_4);

HAL_TIM_PWM_PulseFinishedCallback回調(diào)函數(shù)的實(shí)現(xiàn)部分。
在函數(shù)內(nèi)部,如果STSPIN220_PwmNum的值為0,即已經(jīng)輸出了所需的脈沖個(gè)數(shù),那么通過調(diào)HAL_TIM_PWM_Stop_IT(&htim1, TIM_CHANNEL_4)停止定時(shí)器1的PWM中斷輸出,以達(dá)到停止脈沖輸出的目的。
其次對(duì)全局變量STSPIN220_PwmNum進(jìn)行遞減操作,表示完成了一個(gè)脈沖的輸出就進(jìn)行減1。接著,通過條件判斷if (STSPIN220_PwmNum == 0),檢查是否已經(jīng)輸出了指定數(shù)量的脈沖。
這段代碼的作用是在每次PWM波形周期完成時(shí),更新全局變量STSPIN220_PwmNum的值,并在達(dá)到指定的脈沖數(shù)量后停止PWM中斷輸出。通過這種方式,可以實(shí)現(xiàn)精確控制輸出脈沖個(gè)數(shù)的功能。

/* USER CODE BEGIN 4 */
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
{
	 if(STSPIN220_PwmNum==0)
	 {
			HAL_TIM_PWM_Stop_IT(&htim1,TIM_CHANNEL_4);
			STSPIN220_flag=1;//電機(jī)完成步數(shù)標(biāo)志位
	 }
	STSPIN220_PwmNum--;
}

/* USER CODE END 4 */

產(chǎn)生波形如下所示,可以看到有20個(gè)脈沖。
在這里插入圖片描述

電機(jī)設(shè)置

這里使用的電機(jī)為步進(jìn)角為18°,1:30的減速比,在這種情況下,如果步進(jìn)電機(jī)的步進(jìn)角為18°,減速比為1:30,那么旋轉(zhuǎn)一周所需的脈沖數(shù)量可以計(jì)算為:
旋轉(zhuǎn)一周所需脈沖 = (360 / 步進(jìn)角) * 減速比 * 細(xì)分?jǐn)?shù)
其中,步進(jìn)角以度為單位,減速比是相對(duì)于電機(jī)輸出軸和實(shí)際應(yīng)用中的旋轉(zhuǎn)軸之間的比率,細(xì)分?jǐn)?shù)表示步進(jìn)電機(jī)驅(qū)動(dòng)器將一個(gè)步進(jìn)角分割成多少個(gè)微步。
根據(jù)這個(gè)公式來計(jì)算出所需的脈沖數(shù)量,從而實(shí)現(xiàn)旋轉(zhuǎn)一周的控制。

在這里插入圖片描述

STSPIN220初始化

STSPIN220修改后初始化如下所示。

/* USER CODE BEGIN 2 */
	MX_GPIO_Init_mode3();
	HAL_Delay(100);

	STSPIN220_SetStepMode(0);//mode1-mode4都關(guān)閉
	STSPIN220_enable(0);//使能操作 1使能0失能
	STSPIN220_Stby(1);//低功耗模式 1開啟低功耗0關(guān)閉低功耗
	HAL_Delay(100);

	STSPIN220_SetStepMode(2);//細(xì)分操作
	STSPIN220_Stby(0);//低功耗模式 1開啟低功耗0關(guān)閉低功耗,加載mode
	HAL_Delay(100);//等待電平穩(wěn)定
	STSPIN220_setDirection(0);//0反1正
	HAL_Delay(100);//等待電平穩(wěn)定
	STSPIN220_enable(1);//使能操作 1使能0失能
	HAL_Delay(100);

	STSPIN220_PwmNum = 600*2;//步進(jìn)角為18°,1:30的減速比,細(xì)分2則需要走(360/18)*30*2為一圈	

	MX_TIM1_Init();
//	HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_4);
	HAL_TIM_PWM_Start_IT(&htim1,TIM_CHANNEL_4);
  /* USER CODE END 2 */

主程序

實(shí)現(xiàn)電機(jī)循環(huán)正轉(zhuǎn)1圈反轉(zhuǎn)1圈代碼如下所示。

/* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		if(STSPIN220_flag)
		{
				HAL_Delay(1000);
//				STSPIN220_Stby(1);//低功耗模式 1開啟低功耗0關(guān)閉低功耗
				STSPIN220_flag=0;		
			if(STSPIN220_Dir_flag==0)
			{
				STSPIN220_Dir_flag=1;
				STSPIN220_setDirection(1);//0反1正
				HAL_Delay(100);
				STSPIN220_PwmNum = 600*2;//步進(jìn)角為18°,1:30的減速比,細(xì)分2則需要走(360/18)*30*2為一圈	
				HAL_TIM_PWM_Start_IT(&htim1,TIM_CHANNEL_4);
			}
			else
			{
                
				STSPIN220_Dir_flag=0;
				STSPIN220_setDirection(0);//0反1正
				HAL_Delay(100);
				STSPIN220_PwmNum = 600*2;//步進(jìn)角為18°,1:30的減速比,細(xì)分2則需要走(360/18)*30*2為一圈	
				HAL_TIM_PWM_Start_IT(&htim1,TIM_CHANNEL_4);
			}
		}
		HAL_Delay(10);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

審核編輯:湯梓紅

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

    關(guān)注

    116

    文章

    5456

    瀏覽量

    218764
  • 步進(jìn)電機(jī)
    +關(guān)注

    關(guān)注

    152

    文章

    3165

    瀏覽量

    149417
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3297

    瀏覽量

    117604
  • 電機(jī)驅(qū)動(dòng)器

    關(guān)注

    16

    文章

    670

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    STM32CubeMx入門教程(3):定時(shí)器的使用

    導(dǎo)語“ 使用STM32CubeMx 生成初始化定時(shí)器代碼,實(shí)現(xiàn)定時(shí)器特定定時(shí)
    發(fā)表于 07-11 15:22 ?5240次閱讀
    <b class='flag-5'>STM32CubeMx</b>入門教程(<b class='flag-5'>3</b>):<b class='flag-5'>定時(shí)器</b>的使用

    基于STM32CUBEMX驅(qū)動(dòng)低壓步進(jìn)電機(jī)驅(qū)動(dòng)器STSPIN220(1)----套件概述

    STM32C011F4Px_STSPIN220 是一款基于 STM32C011F4Px 的低壓步進(jìn)電機(jī)驅(qū)
    的頭像 發(fā)表于 12-01 15:16 ?1088次閱讀
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>低壓</b><b class='flag-5'>步進(jìn)</b><b class='flag-5'>器</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動(dòng)器</b><b class='flag-5'>STSPIN220</b>(1)----套件概述

    基于STM32CUBEMX驅(qū)動(dòng)低壓步進(jìn)電機(jī)驅(qū)動(dòng)器STSPIN220(2)----驅(qū)動(dòng)STSPIN220

    本文檔的目標(biāo)是提供關(guān)于使用STM32CubeMX驅(qū)動(dòng)低壓步進(jìn)電機(jī)驅(qū)動(dòng)器
    的頭像 發(fā)表于 12-01 15:25 ?2207次閱讀
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>低壓</b><b class='flag-5'>步進(jìn)</b><b class='flag-5'>器</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動(dòng)器</b><b class='flag-5'>STSPIN220</b>(2)----<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>STSPIN220</b>

    stm32定時(shí)器通過驅(qū)動(dòng)器控制多個(gè)步進(jìn)電機(jī) 精選資料下載

    摘要如果使用驅(qū)動(dòng)器如TB6600、DM542等驅(qū)動(dòng)步進(jìn)電機(jī),需要通過PWM控制。每個(gè)PWM脈沖驅(qū)動(dòng)
    發(fā)表于 07-08 10:04

    Stm32CubeMx基本定時(shí)器的概念

    Stm32CubeMx基本定時(shí)器基本定時(shí)器概念Stm32CubeMx 配置基本配置配置LED燈配置晶振時(shí)鐘配置串口時(shí)鐘數(shù)配置TIM6定時(shí)器
    發(fā)表于 08-18 08:18

    LL庫如何實(shí)現(xiàn)STM32使用定時(shí)器主從模式輸出指定數(shù)量脈沖

    LL庫如何實(shí)現(xiàn)STM32使用定時(shí)器主從模式輸出指定數(shù)量脈沖
    發(fā)表于 12-21 07:25

    怎樣使用定時(shí)器輸出指定個(gè)數(shù)的PWM脈沖

    步進(jìn)電機(jī)控制時(shí),經(jīng)常會(huì)遇到需要輸出指定個(gè)數(shù)的脈沖來實(shí)現(xiàn)精確控制。本篇文章將介紹怎樣使用定時(shí)器輸出指定
    發(fā)表于 01-06 06:19

    【MCU】基于STM32CubeMX定時(shí)器中斷實(shí)現(xiàn)LED閃爍

    基于STM32CubeMX定時(shí)器中斷實(shí)現(xiàn) LED 閃爍本實(shí)驗(yàn)基于STM32CubeMX實(shí)現(xiàn)對(duì)STM32開發(fā)板的配置,通過
    發(fā)表于 10-29 11:06 ?20次下載
    【MCU】基于<b class='flag-5'>STM32CubeMX</b><b class='flag-5'>定時(shí)器</b><b class='flag-5'>中斷</b>實(shí)現(xiàn)LED閃爍

    STM32CUBEMX配置教程(十三)STM32定時(shí)器觸發(fā)的固定頻率DAC輸出(使用DMA)

    STM32CUBEMX配置教程(十三)STM32定時(shí)器觸發(fā)的固定頻率DAC輸出(使用DMA)
    發(fā)表于 11-24 14:06 ?47次下載
    <b class='flag-5'>STM32CUBEMX</b>配置教程(十三)<b class='flag-5'>STM32</b>的<b class='flag-5'>定時(shí)器</b>觸發(fā)的固定頻率DAC輸出(使用DMA)

    STM32 CubeMX學(xué)習(xí):3. 定時(shí)器閃爍LED

    STM32 CubeMX學(xué)習(xí):3. 定時(shí)器閃爍LED 系列文章目錄前期的準(zhǔn)備點(diǎn)亮 LED閃爍 LED定時(shí)器閃爍LED未完待續(xù)…文章目錄
    發(fā)表于 11-25 10:21 ?13次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>CubeMX</b>學(xué)習(xí):<b class='flag-5'>3</b>. <b class='flag-5'>定時(shí)器</b>閃爍LED

    STM32Cube_12】使用通用定時(shí)器產(chǎn)生PWM驅(qū)動(dòng)蜂鳴器

    本篇詳細(xì)的記錄了如何使用STM32CubeMX配置STM32L431RCT6的通用定時(shí)器外設(shè),產(chǎn)生PWM驅(qū)動(dòng)無源蜂鳴器。
    發(fā)表于 11-26 15:36 ?11次下載
    【<b class='flag-5'>STM32</b>Cube_12】使用通用<b class='flag-5'>定時(shí)器</b><b class='flag-5'>產(chǎn)生</b>PWM<b class='flag-5'>驅(qū)動(dòng)</b>蜂鳴器

    STM32CubeMX_定時(shí)器中斷_PWM

    文章目錄前言STM32CubeMX新建工程基本定時(shí)器配置生成代碼定時(shí)器中斷PWM配置工程代碼前言STM32CubeMX_環(huán)境搭建_GPIO_
    發(fā)表于 12-05 13:51 ?13次下載
    <b class='flag-5'>STM32CubeMX</b>_<b class='flag-5'>定時(shí)器</b><b class='flag-5'>中斷</b>_PWM

    基于HAL庫定時(shí)器中斷的閉環(huán)步進(jìn)電機(jī)驅(qū)動(dòng)與精準(zhǔn)控制脈沖數(shù)

    STM32控制步進(jìn)電機(jī):基于HAL庫定時(shí)器中斷的閉環(huán)步進(jìn)電機(jī)
    發(fā)表于 03-16 09:28 ?4次下載
    基于HAL庫<b class='flag-5'>定時(shí)器</b><b class='flag-5'>中斷</b>的閉環(huán)<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動(dòng)</b>與精準(zhǔn)控制<b class='flag-5'>脈沖</b>數(shù)

    基于定時(shí)器中斷的ULN2003驅(qū)動(dòng)器/步進(jìn)電機(jī)驅(qū)動(dòng)程序

    STM32控制步進(jìn)電機(jī):基于定時(shí)器中斷的ULN2003驅(qū)動(dòng)器/
    發(fā)表于 03-16 09:28 ?10次下載
    基于<b class='flag-5'>定時(shí)器</b><b class='flag-5'>中斷</b>的ULN2003<b class='flag-5'>驅(qū)動(dòng)器</b>/<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動(dòng)</b>程序

    STM32定時(shí)器中斷產(chǎn)生PWM控制步進(jìn)電機(jī)

    電機(jī)可以使用PWM、定時(shí)器中斷、延時(shí),這里用的就是定時(shí)器中斷來讓它轉(zhuǎn)動(dòng)。 一、硬件部分 1.使用的硬件 板子用的是正點(diǎn)原子的
    發(fā)表于 03-23 09:56 ?3次下載
    用<b class='flag-5'>STM32</b><b class='flag-5'>定時(shí)器</b><b class='flag-5'>中斷</b><b class='flag-5'>產(chǎn)生</b>PWM控制<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b>
    主站蜘蛛池模板: 九九九色 | 影院成人区精品一区二区婷婷丽春院影视 | 欧美午夜网 | 奇米色88欧美一区二区 | 国产 麻豆 | 伊人丁香婷婷综合一区二区 | 午夜视频在线观看免费视频 | 久久精品亚洲一区二区三区浴池 | bt天堂资源种子在线 | 黄色免费大全 | 轻点灬大ji巴太粗太大了小说 | 欧美四虎 | 午夜亚洲国产精品福利 | 日产精品卡二卡三卡四卡无卡乱码 | 午夜免费视频观看 | 亚洲天天做夜夜做天天欢人人 | 色天使美国 | 涩色综合 | 亚洲国产精品婷婷久久久久 | 美女视频黄又黄又免费高清 | 国产高清在线 | 国产美女精品久久久久中文 | 午夜剧场刺激性爽免费视频 | 欧美一区二区三区视频在线观看 | a在线观看网站 | 午夜视频福利在线 | 综合爱爱| 亚洲一卡2卡3卡4卡5卡乱码 | aaaa欧美高清免费 | 1024在线观看你懂的 | 午夜亚洲福利 | 天天摸天天干天天操 | 伊人操 | 成人毛片在线播放 | 成人性色生活影片 | 欧美一级黄色片视频 | 国产三级精品在线 | 天天操狠狠操夜夜操 | 香蕉久久夜色精品国产2020 | 黄色免费在线网站 | 香蕉久久夜色精品国产小说 |