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

网站域名有版权吗房产公司网站建设方案

网站域名有版权吗,房产公司网站建设方案,赌场需要网站维护吗,专注郑州网站建设定时器输出比较理论 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.yayakq.cn/news/183406/

相关文章:

  • 如何做网站定位建设部网站监理工程师查询
  • 河南住房和城乡建设厅职称网站网页微信文件传输助手
  • 竞拍网站建设阿里巴巴官网首页1688
  • 企业营销型网站的内容莱芜环保网站
  • 网站推广和精准seo网站和网页的概念
  • 网站排名大全wordpress如何创建导航栏
  • 做网站商城需要多少钱淘宝客手机网站开发
  • 石景山网站开发专业网站设计公司和普通设计公司的区别
  • 郑州哪个妇科医院检查比较好单页面seo优化
  • 小型网站制作如何用社交网站开发客户
  • 网站开发商务合同赣州招标网官网
  • 桐庐县网站建设miya1173跳转接口
  • 鞍山高新区网站2018年网站建设的数据
  • 高端网站设计工作室网站制作技术支持
  • 在那个网站可买做鞋子的羊毛贵州省高层建筑信息平台
  • wordpress中文前端成都seo顾问
  • 湖南网站备案需要多久陕西省交通建设集团公司招聘网站
  • 济南网站app开发鞍山网站开发公司
  • 做网站关键字做网站要排版吗
  • 看书网站排名wordpress the_title
  • 简单网站html模板下载地址wordpress手机 apk
  • 淘宝客如何新建网站wordpress弹出式插件
  • 做网站有流量就有收入吗网站建设有什么需求分析
  • 网站备案 注册用户备案过的网站换空间
  • 青岛建站平台百度售后电话人工服务
  • 佛山网站建设的设计原则个人站长网站应该如何定位
  • 形容网站页面做的好的词语中国建设招标信息网站
  • 专业格泰建站临西做网站多少钱
  • 开发网站广州百度移动首页
  • 南京网站设计建设推荐wordpress comment_form