当前位置: 首页 > wzjs >正文

玉林英文网站建设最近的国内新闻

玉林英文网站建设,最近的国内新闻,31省份新增本土确诊30例头晕,做三级分销网站公司目录 1、硬件JIE 2、PWM口配置 3、角度转换 4、main函数中应用 5、工程下载连接 1、硬件介绍 单片机:STM32F1 舵机:MG995 2、PWM口配置 20毫秒的PWM脉冲占空比,对舵机控制效果较好 计算的公式: PSC、ARR值的选取&#xf…

目录

1、硬件JIE

2、PWM口配置

3、角度转换

4、main函数中应用

5、工程下载连接


1、硬件介绍

单片机:STM32F1

舵机:MG995

2、PWM口配置

20毫秒的PWM脉冲占空比,对舵机控制效果较好

计算的公式:

PSC、ARR值的选取:SG90要求的频率是20ms,则72MHz / (PSC+1) / (ARR+1) = 1/0.02;这里PSC和ARR的参数是不固定的。经过多次尝试最终确定PSC=72-1,ARR=20k-1时,舵机旋转效果最好。

PWM配置程序

void pwm_init(void)
{GPIO_InitTypeDef GPIO_InitStructure_For_Servo;TIM_TimeBaseInitTypeDef TIM_TimeBaseImitStructure;TIM_OCInitTypeDef TIM_OCInitStructure;/*µÚÒ»²½¿ªÆôRCCʱÖÓ*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);/*µÚ¶þ²½ÅäÖÃGPIO¶Ë¿---PA1Ú*/GPIO_InitStructure_For_Servo.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure_For_Servo.GPIO_Pin = GPIO_Pin_1;GPIO_InitStructure_For_Servo.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure_For_Servo);TIM_InternalClockConfig(TIM2);/*??????*//*µÚÈý²½ÅäÖÃʱ»ùµ¥Ôª*/   //20msƵÂÊ(¶æ»úÒªÇóµÄÕâ¸öƵÂÊЧ¹û×îºÃ)TIM_TimeBaseImitStructure.TIM_ClockDivision = TIM_CKD_DIV1;TIM_TimeBaseImitStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseImitStructure.TIM_Period = 20000 - 1;TIM_TimeBaseImitStructure.TIM_Prescaler = 72 - 1;TIM_TimeBaseImitStructure.TIM_RepetitionCounter = 0;TIM_TimeBaseInit(TIM2,&TIM_TimeBaseImitStructure);/*µÚËIJ½ÅäÖÃÊä³ö±È½Ïµ¥Ôª*/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_OC2Init(TIM2,&TIM_OCInitStructure);/*µÚÎ岽ʹÄÜʱÖÓ*/TIM_Cmd(TIM2,ENABLE);
}

设置脉冲

void pwm_setcompare2(uint16_t compare)
{TIM_SetCompare2(TIM2,compare);
}

完整代码


#include "pwm.h"void pwm_init(void)
{GPIO_InitTypeDef GPIO_InitStructure_For_Servo;TIM_TimeBaseInitTypeDef TIM_TimeBaseImitStructure;TIM_OCInitTypeDef TIM_OCInitStructure;/*µÚÒ»²½¿ªÆôRCCʱÖÓ*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);/*µÚ¶þ²½ÅäÖÃGPIO¶Ë¿---PA1Ú*/GPIO_InitStructure_For_Servo.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure_For_Servo.GPIO_Pin = GPIO_Pin_1;GPIO_InitStructure_For_Servo.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure_For_Servo);TIM_InternalClockConfig(TIM2);/*??????*//*µÚÈý²½ÅäÖÃʱ»ùµ¥Ôª*/   //20msƵÂÊ(¶æ»úÒªÇóµÄÕâ¸öƵÂÊЧ¹û×îºÃ)TIM_TimeBaseImitStructure.TIM_ClockDivision = TIM_CKD_DIV1;TIM_TimeBaseImitStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseImitStructure.TIM_Period = 20000 - 1;TIM_TimeBaseImitStructure.TIM_Prescaler = 72 - 1;TIM_TimeBaseImitStructure.TIM_RepetitionCounter = 0;TIM_TimeBaseInit(TIM2,&TIM_TimeBaseImitStructure);/*µÚËIJ½ÅäÖÃÊä³ö±È½Ïµ¥Ôª*/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_OC2Init(TIM2,&TIM_OCInitStructure);/*µÚÎ岽ʹÄÜʱÖÓ*/TIM_Cmd(TIM2,ENABLE);
}void pwm_setcompare2(uint16_t compare)
{TIM_SetCompare2(TIM2,compare);
}

3、角度转换

void servo_set_angle(double angle)
{pwm_setcompare2(angle / 180 * 2000 + 500);
}

完整代码

#include "stepmotor.h"
#include "pwm.h"void servo_init(void)
{pwm_init();}void servo_set_angle(double angle)
{pwm_setcompare2(angle / 180 * 2000 + 500);
}

4、main函数中应用

2秒运动执行一次,分别从0度->180度->270度。(若180度舵机,运动到180度就不再往后转270度了,等到0度的时候转到0度)

        //2秒运行一次if(i%2000==0){count++;//printf("count:%d \r\n",count);//printf("Pitch: %.2f ,Roll: %.2f,Yaw: %.2f \r\n",Pitch,Roll,Yaw);			//Pitch,Roll,YawÊý¾Ý´«µ½´®¿Ú	count2++;if(count2==1){angle=0;servo_set_angle(angle);printf("angle:%.2f \r\n",angle);}if(count2==2){angle=180;servo_set_angle(angle);printf("angle:%.2f \r\n",angle);}if(count2==3){angle=270;servo_set_angle(angle);count2=0;printf("angle:%.2f \r\n",angle);}}

完整代码

#include "system.h"
#include "SysTick.h"
#include "SysDelay.h"
#include "led.h"
#include "usart.h"
#include "mpu6050.h"
#include "stepmotor.h"double angle;int main()
{u8 count=0;u16 i=0;	u16 count2=0;SystemInit();                   		//ϵͳ³õʼ»¯	SysDelay_Init(72);									//×Ô¶¨ÒåÑÓʱº¯Êý³õʼ»¯LED_Init();USART1_Config();										//´®¿Ú1³õʼ»¯ ÉÏλ»úUSART3_Config();										//´®¿Ú3³õʼ»¯ À¶ÑÀÓëUSART3¹«ÓÃÏàͬIO¿ÚSysDelay_ms(10);										//10ºÁÃëÑÓʱMPU6050_Init();						   				//MPU6050 DMPÍÓÂÝÒdzõʼ»¯delay_ms(1000);servo_init();while(1){/* 1¡¢LEDµÆÉÁ˸ */	if(i%500==0){led1=!led1;}//2ÃëÖ´ÐÐÒ»´Îif(i%2000==0){count++;//printf("count:%d \r\n",count);//printf("Pitch: %.2f ,Roll: %.2f,Yaw: %.2f \r\n",Pitch,Roll,Yaw);			//Pitch,Roll,YawÊý¾Ý´«µ½´®¿Ú	count2++;if(count2==1){angle=0;servo_set_angle(angle);printf("angle:%.2f \r\n",angle);}if(count2==2){angle=180;servo_set_angle(angle);printf("angle:%.2f \r\n",angle);}if(count2==3){angle=270;servo_set_angle(angle);count2=0;printf("angle:%.2f \r\n",angle);}}//20ºÁÃëÖ´ÐÐÒ»´Îif(i%20==0){}/*»ñÈ¡MPU6050½Ç¶È״̬*///ÔÚ´®¿ÚÊý¾Ý·¢ËÍÖ®ºó MPU6050_Pose();										//Pitch·­¹ö£¬Roll¸©Ñö£¬YawÆ«º½SysDelay_ms(1);									//1ºÁÃëÑÓʱi++;}
}

5、工程下载连接

https://download.csdn.net/download/panjinliang066333/90437321

http://www.dtcms.com/wzjs/13987.html

相关文章:

  • 下载的html文件打开乱码北京搜索引擎优化管理专员
  • 网站营运西安seo优化公司
  • 免费海外网站cdn加速怎么开自己的网站
  • 网站建设怎么做分录主流搜索引擎有哪些
  • 上海建设网站便宜的app推广联盟平台
  • 台州高端网站设计产品推广方案范文500字
  • 怎样把建好的网站上传到互联网seo刷关键词排名免费
  • 微信软件如何开发seo软件代理
  • 政府网站集约化建设存在问题企业seo网站推广
  • wordpress 数据库sqlseo按照搜索引擎的
  • 免费下载现成ppt网站网站安全检测中心
  • 泉州做网站排名推广普通话手抄报模板可打印
  • 大众点评网怎么做团购网站广告推销
  • 云南旅游网站建设公司淘宝代运营公司排名
  • 神箭手 wordpressseo全称是什么意思
  • 建设嫖客网站网络seo推广
  • 北京网站首页排名公司公司软文推广
  • 今天新闻联播主要内容整站快速排名优化
  • 目前做响应式网站最好的cms济南做网站公司哪家好
  • 阿里巴巴logo图片seo教程论坛
  • 公园网站建设方案建站系统哪个好
  • 营销技巧和营销方法心得靠谱seo外包定制
  • 论坛网站需要多大的空间2021百度seo
  • 如手机网站源码快速建站平台
  • 月嫂网站建设方案网站推广工作
  • 网站建设 移动端如何进行seo搜索引擎优化
  • 市住房和城乡规划建设局网站googleplay官方下载
  • 做网站公司怎么选常州免费网站建站模板
  • 公司网站制作的费用百度推广费用预算表
  • 网站开发机构淘宝付费推广有几种方式