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

stm32同時(shí)控制兩個(gè)舵機(jī)

這篇具有很好參考價(jià)值的文章主要介紹了stm32同時(shí)控制兩個(gè)舵機(jī)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

硬件準(zhǔn)備:stm32,兩個(gè)舵機(jī)

?stm32控制兩個(gè)舵機(jī),stm32,嵌入式硬件,單片機(jī)stm32控制兩個(gè)舵機(jī),stm32,嵌入式硬件,單片機(jī)

舵機(jī)pwm波形輸出,使用TIM2中的兩個(gè)通道進(jìn)行輸出。

pwm.c

#include "stm32f10x.h"                  // Device header

void PWM_Init(void)
{
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_0;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	
	TIM_InternalClockConfig(TIM2);
	
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
	TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
	TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
	TIM_TimeBaseInitStructure.TIM_Period = 20000 - 1;		//ARR
	TIM_TimeBaseInitStructure.TIM_Prescaler = 72 - 1;		//PSC
	TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;
	TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStructure);
	
	TIM_OCInitTypeDef TIM_OCInitStructure;
	TIM_OCStructInit(&TIM_OCInitStructure);
	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
	TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
	TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
	TIM_OCInitStructure.TIM_Pulse = 0;		//CCR
	TIM_OC1Init(TIM2, &TIM_OCInitStructure);
	TIM_OC2Init(TIM2, &TIM_OCInitStructure);
	

	
	TIM_Cmd(TIM2, ENABLE);
}

void PWM_SetCompare2(uint16_t Compare)
{
	TIM_SetCompare2(TIM2, Compare);
}
void PWM_SetCompare1(uint16_t Compare)
{
	TIM_SetCompare1(TIM2, Compare);
}

pwm,h

#ifndef __PWM_H
#define __PWM_H

void PWM_Init(void);
void PWM_SetCompare1(uint16_t Compare);
void PWM_SetCompare2(uint16_t Compare);

#endif

為了更加直觀的使用,用Servo函數(shù)對(duì)pwm輸出占空比與舵機(jī)旋轉(zhuǎn)角度進(jìn)行封裝。

Servo,c

#include "stm32f10x.h"                  // Device header
#include "PWM.h"

void Servo_Init(void)
{
	PWM_Init();
}

void Servo_SetAngle2(float Angle2)
{
	PWM_SetCompare2(Angle2 / 180 * 2000 + 500);

}
void Servo_SetAngle1(float Angle1)
{
	PWM_SetCompare1(Angle1 / 180 * 2000 + 500);

}

Servo,h

#ifndef __SERVO_H
#define __SERVO_H

void Servo_Init(void);
void Servo_SetAngle1(float Angle1);
void Servo_SetAngle2(float Angle2);

#endif

主函數(shù)

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "PWM.h"
#include "Key.h"
#include "Servo.h"


uint8_t KeyNum;
float Angle1,Angle2;

int main(void)
{

	Servo_Init();
	Key_Init();
	Serial_Init();
	

	
	while (1)
	{
                if( KeyNum == 1 )
                {
				Angle1+=30;
				if(Angle1>180)
				{
					Angle1 = 0;
					Delay_ms(50);
				}
				Servo_SetAngle1(Angle1);
								break;
                }
				
	
                if(KeyNum == 2 )
                {
				Angle2+=30;
				if(Angle2>180)
				{
					Angle2 = 0;
					Delay_ms(50);
				}
				Servo_SetAngle2(Angle2);
				break;
                }
			
			
			
		
	}
}

同時(shí)分享一位大佬的視頻,我也是跟著他學(xué)習(xí),一步一步總結(jié)的。

https://www.bilibili.com/video/BV1th411z7sn/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-635806.html

到了這里,關(guān)于stm32同時(shí)控制兩個(gè)舵機(jī)的文章就介紹完了。如果您還想了解更多內(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 通訊協(xié)議--MODBUS

    嵌入式 STM32 通訊協(xié)議--MODBUS

    目錄 一、自定義通信協(xié)議 1、協(xié)議介紹 2、網(wǎng)絡(luò)協(xié)議 3、自定義的通信協(xié)議? 二、MODBUS通信協(xié)議 1、概述 2、MODBUS幀結(jié)構(gòu)? 協(xié)議描述 3、MODBUS數(shù)據(jù)模型 ? 4、MODBUS事務(wù)處理的定義 5、MODBUS功能碼? 6、功能碼定義? ?7、MODBUS數(shù)據(jù)鏈路層 8、MODBUS地址規(guī)則? 9、MODBUS幀描述 10、MODBUS兩種

    2024年02月11日
    瀏覽(40)
  • STM32的時(shí)鐘系統(tǒng)(嵌入式學(xué)習(xí))

    STM32的時(shí)鐘系統(tǒng)(嵌入式學(xué)習(xí))

    時(shí)鐘是指用于計(jì)量和同步時(shí)間的裝置或系統(tǒng)。時(shí)鐘是嵌入式系統(tǒng)的脈搏,處理器內(nèi)核在時(shí)鐘驅(qū)動(dòng)下完成指令執(zhí)行,狀態(tài)變換等動(dòng)作,外設(shè)部件在時(shí)鐘的驅(qū)動(dòng)下完成各種工作,例如:串口數(shù)據(jù)的發(fā)送、AD轉(zhuǎn)換、定時(shí)器計(jì)數(shù)等。因此時(shí)鐘對(duì)于計(jì)算機(jī)系統(tǒng)是至關(guān)重要的,通常時(shí)鐘系

    2024年02月16日
    瀏覽(29)
  • 嵌入式——新建STM32工程(標(biāo)準(zhǔn)庫(kù))

    嵌入式——新建STM32工程(標(biāo)準(zhǔn)庫(kù))

    目錄 一、初識(shí)標(biāo)準(zhǔn)庫(kù) 1.CMSIS標(biāo)準(zhǔn)及庫(kù)層級(jí)關(guān)系 2.庫(kù)文件介紹 (1)Libraries文件夾 ①CMSIS文件夾 ②STM32F10x_Std_Periph_Driver文件夾 ③ 在用庫(kù)建立一個(gè)完整的工程時(shí),還需要添加stm32f10x_it.c、 stm32f10x_conf.h 和 system_stm32f10x.c文件 (2)Project文件夾 (3)Utilities文件夾 3.庫(kù)各文件之間的關(guān)

    2024年01月23日
    瀏覽(91)
  • STM32串口通信詳解(嵌入式學(xué)習(xí))

    STM32串口通信詳解(嵌入式學(xué)習(xí))

    時(shí)鐘信號(hào)在電子領(lǐng)域中是指用于同步和定時(shí)電路操作的周期性信號(hào)。它在數(shù)字系統(tǒng)和通信系統(tǒng)中起著至關(guān)重要的作用,用于協(xié)調(diào)各個(gè)組件之間的數(shù)據(jù)傳輸和操作。 時(shí)鐘信號(hào)有以下幾個(gè)重要的方面: 頻率:時(shí)鐘信號(hào)的頻率是指單位時(shí)間內(nèi)信號(hào)周期的數(shù)量。它通常以赫茲(Hz)為

    2024年02月09日
    瀏覽(23)
  • 嵌入式項(xiàng)目分享 stm32智能運(yùn)動(dòng)計(jì)步系統(tǒng) - 物聯(lián)網(wǎng) 嵌入式 單片機(jī)

    嵌入式項(xiàng)目分享 stm32智能運(yùn)動(dòng)計(jì)步系統(tǒng) - 物聯(lián)網(wǎng) 嵌入式 單片機(jī)

    ?? 這兩年開(kāi)始畢業(yè)設(shè)計(jì)和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點(diǎn),往往達(dá)不到畢業(yè)答辯的要求,這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長(zhǎng)自己做的項(xiàng)目系統(tǒng)達(dá)不到老師的要求。 為了大家能夠順利以及最少的精力通過(guò)畢設(shè),學(xué)長(zhǎng)分享優(yōu)質(zhì)畢業(yè)設(shè)計(jì)項(xiàng)目,今天

    2024年02月20日
    瀏覽(108)
  • STM32的中斷系統(tǒng)詳解(嵌入式學(xué)習(xí))

    STM32的中斷系統(tǒng)詳解(嵌入式學(xué)習(xí))

    中斷是處理器中的一種機(jī)制,用于響應(yīng)和處理突發(fā)事件或緊急事件。當(dāng)發(fā)生中斷時(shí),當(dāng)前正在執(zhí)行的程序會(huì)被暫時(shí)中止,處理器會(huì)跳轉(zhuǎn)到中斷處理程序(也稱為中斷服務(wù)例程),對(duì)中斷事件進(jìn)行處理。處理完中斷后,處理器再返回到被中斷的程序繼續(xù)執(zhí)行。 中斷可以分為內(nèi)部

    2024年02月12日
    瀏覽(35)
  • 嵌入式C語(yǔ)言基礎(chǔ)(STM32)

    前言:一條混跡嵌入式3年的老咸魚(yú),想到自己第一次接觸到stm32的庫(kù)函數(shù)時(shí),c語(yǔ)言稀碎,痛不欲生的場(chǎng)景,該文章為萌新指條明路。 位操作在嵌入式中常用于直接對(duì)芯片的寄存器進(jìn)行操作,當(dāng)時(shí)作為初學(xué)者的我看著一臉懵逼,至于為什么這樣修改,下面好好分析一下。 ?一

    2024年02月02日
    瀏覽(22)
  • 嵌入式學(xué)習(xí)筆記——STM32的時(shí)鐘樹(shù)

    嵌入式學(xué)習(xí)筆記——STM32的時(shí)鐘樹(shù)

    在之前的所有代碼編程的過(guò)程中,似乎每次都繞不開(kāi)一個(gè)叫做時(shí)鐘使能的東西,當(dāng)時(shí)我們是在數(shù)據(jù)手冊(cè)上直接看其掛接在那條時(shí)鐘線上的,那么STM32內(nèi)部的時(shí)鐘到底是怎么一個(gè)構(gòu)型呢,本文來(lái)對(duì)此做一個(gè)介紹。 老規(guī)矩,一個(gè)新的名詞出現(xiàn),首先需要搞清楚它是個(gè)啥,下圖中對(duì)

    2024年02月02日
    瀏覽(24)
  • 嵌入式學(xué)習(xí)stm32基礎(chǔ)知識(shí)(期末復(fù)習(xí))

    嵌入式學(xué)習(xí)stm32基礎(chǔ)知識(shí)(期末復(fù)習(xí))

    1. 計(jì)算機(jī)的體系架構(gòu) 馮諾依曼架構(gòu) ? 在完整的計(jì)算機(jī)系統(tǒng)中,包含五個(gè)部分,儲(chǔ)存器,運(yùn)算器,控制器輸入設(shè)備和輸出設(shè)備。 改進(jìn)的馮諾依曼架構(gòu) 改進(jìn)型架構(gòu)的各模塊的高速數(shù)據(jù)交換中心利用儲(chǔ)存器這個(gè)大容量,極大的提高了效率。 哈佛架構(gòu) ? 哈佛結(jié)構(gòu)數(shù)據(jù)空間和地址

    2024年02月07日
    瀏覽(73)
  • 嵌入式-stm32-江科大-EXTI外部中斷

    嵌入式-stm32-江科大-EXTI外部中斷

    1.1 STM32 中斷系統(tǒng) 中斷 是指在主程序運(yùn)行過(guò)程中,出現(xiàn)了特定的中斷觸發(fā)條件(中斷源),使得CPU暫停當(dāng)前的程序,轉(zhuǎn)而去處理中斷程序,處理完成后又返回原來(lái)被暫停的位置繼續(xù)執(zhí)行, 當(dāng)中斷發(fā)生時(shí)是由硬件自動(dòng)調(diào)用中斷函數(shù)執(zhí)行的,期間編譯器會(huì)保護(hù)現(xiàn)場(chǎng)最后還原現(xiàn)場(chǎng)

    2024年01月25日
    瀏覽(32)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包