中企动力做的 石子厂网站一下成都网站建设公司
2026/6/10 0:41:24 网站建设 项目流程
中企动力做的 石子厂网站,一下成都网站建设公司,空间站建造阶段,手机销售网站的建设1.编码器接口测速1.基本要点1.void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode,uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity);//配置定时器编码器接口模式的核心函数#xff0c;用于将定时器配置为编码器模式#xff0c;实现对正交编…1.编码器接口测速1.基本要点1.void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode,uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity);//配置定时器编码器接口模式的核心函数用于将定时器配置为编码器模式实现对正交编码器如光电编码器、增量式编码器的脉冲计数从而获取电机 / 机械结构的转速、转向等信息。2.上拉下拉和浮空输入这三个的选择可以根据外接模块的默认输出电平来选择好比外部模块默认输出高电平则上拉输入。模式内部电阻连接无外部输入时的电平电平读取逻辑典型电阻值浮空输入IN_FLOATING无上拉 / 下拉电阻不确定悬浮直接读取引脚外部电平无上拉输入IPU上拉电阻接 VDD高电平VDD外部拉低时为低否则为高30~50kΩ下拉输入IPD下拉电阻接 VSS低电平VSS外部拉高时为高否则为低30~50kΩ3.极性选择在不同情况下的的含义——TIM_ICPolarity_Rising在输入捕获中代表当上升沿时触发捕获操作而在编码器中则代表的对于信号源波形是否进行反向这里是不进行反向。相应的下降沿代表进行反相操作。2.代码1.Encoder.h/c#ifndef __ENCODER_H #define __ENCODER_H void Encoder_Init(void); int16_t Encoder_Get(void); #endif#include stm32f10x.h // Device header void Encoder_Init(void) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Mode GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Pin GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; GPIO_Init(GPIOA, GPIO_InitStructure); TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; TIM_TimeBaseInitStructure.TIM_ClockDivision TIM_CKD_DIV1; TIM_TimeBaseInitStructure.TIM_CounterMode TIM_CounterMode_Up; TIM_TimeBaseInitStructure.TIM_Period 65536 - 1; //ARR TIM_TimeBaseInitStructure.TIM_Prescaler 1 - 1; //PSC TIM_TimeBaseInitStructure.TIM_RepetitionCounter 0; TIM_TimeBaseInit(TIM3, TIM_TimeBaseInitStructure); TIM_ICInitTypeDef TIM_ICInitStructure; TIM_ICStructInit(TIM_ICInitStructure); TIM_ICInitStructure.TIM_Channel TIM_Channel_1; TIM_ICInitStructure.TIM_ICFilter 0xF; TIM_ICInit(TIM3, TIM_ICInitStructure); TIM_ICInitStructure.TIM_Channel TIM_Channel_2; TIM_ICInitStructure.TIM_ICFilter 0xF; TIM_ICInit(TIM3, TIM_ICInitStructure); //TIM_ICPolarity_Rising在编码器中指不进行反相 TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising); TIM_Cmd(TIM3, ENABLE); } int16_t Encoder_Get(void) { int16_t Temp; TempTIM_GetCounter(TIM3); TIM_SetCounter(TIM3,0); return Temp; }2.main函数#include stm32f10x.h // Device header寄存器头文件 #include Delay.h #include OLED.H #include Timer.h #include Encoder.h int16_t Speed; int main(void) { OLED_Init(); Timer_Init(); Encoder_Init(); OLED_ShowString(1,1,Speed:); while(1) { OLED_ShowSignedNum(1,7,Speed,5);//每隔一秒读取一次数值即得速度 } } void TIM2_IRQHandler(void) { if(TIM_GetITStatus(TIM2,TIM_IT_Update)SET) { SpeedEncoder_Get(); TIM_ClearITPendingBit(TIM2,TIM_IT_Update); } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询