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

成都专业网站建设aso优化重要吗

成都专业网站建设,aso优化重要吗,世界排名前十的服装设计学院,莱州哪有做网站的定时器输出比较理论 OC(Output Compare)输出比较输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形每个高级定时器和通用定时器都拥有4个输出比较通道高级定时器的前3个通道额外拥有死区生成和互补输出…

定时器输出比较理论

  • OC(Output Compare)输出比较
  • 输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形
  • 每个高级定时器和通用定时器都拥有4个输出比较通道
  • 高级定时器的前3个通道额外拥有死区生成和互补输出的功能 

输出比较功能非常重要,主要用来输出PWM波形, PWM波形是驱动电机的必要条件,可以用来做智能车,机器人等项目

定时器配置

引脚配置,步进电机的驱动、方向、脉冲

/*** @brief  配置TIM复用输出PWM时用到的I/O* @param  无* @retval 无*/
static void Stepper_GPIO_Config(void) 
{GPIO_InitTypeDef GPIO_InitStruct;/*开启Motor相关的GPIO外设时钟*/MOTOR_DIR_GPIO_CLK_ENABLE();MOTOR_PUL_GPIO_CLK_ENABLE();MOTOR_EN_GPIO_CLK_ENABLE();/*选择要控制的GPIO引脚*/															   GPIO_InitStruct.Pin = MOTOR_DIR_PIN;	/*设置引脚的输出类型为推挽输出*/GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;  GPIO_InitStruct.Pull =GPIO_PULLUP;/*设置引脚速率为高速 */   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;/*Motor 方向引脚 初始化*/HAL_GPIO_Init(MOTOR_DIR_GPIO_PORT, &GPIO_InitStruct);	/*Motor 使能引脚 初始化*/GPIO_InitStruct.Pin = MOTOR_EN_PIN;	HAL_GPIO_Init(MOTOR_EN_GPIO_PORT, &GPIO_InitStruct);	/* 定时器通道1功能引脚IO初始化 *//*设置输出类型*/GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;/*设置引脚速率 */ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;/*设置复用*/GPIO_InitStruct.Pull =GPIO_PULLUP;/*选择要控制的GPIO引脚*/	GPIO_InitStruct.Pin = MOTOR_PUL_PIN;/*Motor 脉冲引脚 初始化*/HAL_GPIO_Init(MOTOR_PUL_PORT, &GPIO_InitStruct);			
}

定时器初始化和输出比较模式(翻转模式)配置

初始化

void TIM_PWMOUTPUT_Config(void)
{TIM_OC_InitTypeDef  TIM_OCInitStructure;  	/*使能定时器*/MOTOR_PUL_CLK_ENABLE();TIM_StepperHandle.Instance = MOTOR_PUL_TIM;    /* 累计 TIM_Period个后产生一个更新或者中断*/		///当定时器从0计数到TIM_PERIOD-1,即为TIM_PERIOD次,为一个定时周期TIM_StepperHandle.Init.Period = TIM_PERIOD-1; //定时器时钟源TIMxCLK = 2 * PCLK1  //				PCLK1 = HCLK / 2 //				=> TIMxCLK=HCLK/2=SystemCoreClock/2*2=72MHz// 设定定时器频率为=TIMxCLK/(TIM_Prescaler+1)=100KHzTIM_StepperHandle.Init.Prescaler = TIM_PRESCALER-1;/*计数方式*/TIM_StepperHandle.Init.CounterMode = TIM_COUNTERMODE_UP;            /*采样时钟分频*/	TIM_StepperHandle.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;   TIM_StepperHandle.Init.RepetitionCounter = 0 ;  		/*初始化定时器*/HAL_TIM_OC_Init(&TIM_StepperHandle);/*PWM模式配置--这里配置为输出比较模式*/TIM_OCInitStructure.OCMode = TIM_OCMODE_TOGGLE; /*比较输出的计数值*/TIM_OCInitStructure.Pulse = OC_Pulse_num;/*当定时器计数值小于CCR1_Val时为高电平*/TIM_OCInitStructure.OCPolarity = TIM_OCPOLARITY_HIGH;          /*设置互补通道输出的极性*/TIM_OCInitStructure.OCNPolarity = TIM_OCNPOLARITY_LOW; /*快速模式设置*/TIM_OCInitStructure.OCFastMode = TIM_OCFAST_DISABLE;   /*空闲电平*/TIM_OCInitStructure.OCIdleState = TIM_OCIDLESTATE_RESET;  /*互补通道设置*/TIM_OCInitStructure.OCNIdleState = TIM_OCNIDLESTATE_RESET; HAL_TIM_OC_ConfigChannel(&TIM_StepperHandle, &TIM_OCInitStructure, MOTOR_PUL_CHANNEL_x);/* 确定定时器 */HAL_TIM_Base_Start(&TIM_StepperHandle);/* 启动比较输出并使能中断 */HAL_TIM_OC_Start_IT(&TIM_StepperHandle,MOTOR_PUL_CHANNEL_x);/*使能比较通道*/TIM_CCxChannelCmd(MOTOR_PUL_TIM,MOTOR_PUL_CHANNEL_x,TIM_CCx_ENABLE);}

定时器_回调函数_全部如下

/** @defgroup TIM_Exported_Functions_Group9 TIM Callbacks functions*  @brief   TIM Callbacks functions* @{*/
/* Callback in non blocking modes (Interrupt and DMA) *************************/
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);
void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim);
void HA
http://www.ds6.com.cn/news/116517.html

相关文章:

  • 网站制作方案怎么写百度第三季度财报2022
  • 网站如何做更新小红书推广渠道
  • 网站怎么申请微博登录沧州网络推广公司
  • 建设一个视频网站的成本世界搜索引擎大全
  • 校园网网站建设规划书网站统计分析工具的主要功能
  • 北京网络网站建设价格幽默软文经典案例300
  • b站播放量自助下单百度热议排名软件
  • 商丘做网站的电话企业为何选择网站推广外包?
  • 网站的客服一般怎么做百度网址大全
  • wordpress 全站ajaxqq空间秒赞秒评网站推广
  • 湖北公司网站建设多少钱互联网营销师培训费用是多少
  • 合肥网站设计制作怎么让某个关键词排名上去
  • 阿里巴巴做网站找谁最新战争新闻事件今天
  • 网站建设质量保证清远新闻最新
  • 怎样网站seo谷歌排名查询
  • 高校网站建设自查报告舆情信息报送
  • 环球网广东疫情最新消息免费seo公司
  • 为什么要给企业建设网站外贸互联网推广的
  • 做电影网站一年赚多少seo值怎么提高
  • 网站公司 模板班级优化大师下载
  • 万网域名优惠口令重庆网页优化seo
  • 网站图表怎么做的查域名的网址
  • 网站维护提醒php文件重庆森林讲的什么内容
  • 网站安装系统怎么安装教程视频周口网络推广哪家好
  • 如何在word上做网站网址站长数据
  • 建站自学网络推广seo教程
  • 做的比较好比较牛逼的网站怎么交换友情链接
  • 安徽淮北发现一例石家庄百度快速排名优化
  • 什么样的网站开发比较吃香百度的排名规则详解
  • 企业网站建设 深圳网络营销平台名词解释